Tag: 不可为空

让Kotlin警告灵活/平台types赋值为非空types?

当从Kotlin调用一个不可为空注释的Java函数时,我们得到灵活types的返回值,用感叹号表示,例如String! 。 Kotlin默默地允许将这些灵活的值分配给一个正常的非空types,例如String ,在运行时可能会导致NullPointerExceptionexception。 我宁愿为这样的任务得到编译器警告或错误。 或者,将平台types视为等价于可空types(例如String? )。 作为一个例子,用这个Java代码: import android.os.SystemClock; import android.support.annotation.NonNull; import android.support.annotation.Nullable; public class NullTest { private String maybe() { if (SystemClock.elapsedRealtimeNanos() % 2 == 0) { return null; } return “ok”; } public String annotatedNothing() { return maybe(); } @Nullable public String annotatedNullable() { return maybe(); } @NonNull public String annotatedNonNull() { […]