这篇文章我们一起来学习Kotlin空安全的设计
在Kotlin中可以通过 IDE 的提示来避免调用 null 对象,从而避免 NullPointerException。其实在 androidx 里就有支持的,用一个注解就可以标记变量是否可能为空,然后 IDE 会帮助检测和提示,我们来看下面这段 Java 代码:
//Java
@NonNull
View view = null;
// IDE 会提示警告,'null' is assigned to a variable that is annotated with @NotNull
而到了 Kotlin 这里,就有了语言级别的默认支持,而且提示的级别从 warning 变成了 error(拒绝编译):
//Kotlin
var view: View = null
// IDE 会提示错误,Null can not be a value of a non-null type View
在 Kotlin 里面,所有的变量默认都是不允许为空的,如果你给它赋值 null,就会报错,像上面那样。
这种有点强硬的要求,其实是很合理的:既然你声明了一个变量,就是要使用它对吧?那你把它赋值为 null 干嘛?要尽量让它有可用的值啊。Java 在这方面很宽松,我们成了习惯,但 Kotlin 更强的限制其实在你熟悉了之后,是会减少很多运行时的问题的。
不过,还是有些场景,变量的值真的无法保证空与否,比如你要从服务器取一个 JSON 数据&#x