Kotlin 空安全

2024 年 8 月 29 日 | 阅读 2 分钟

Kotlin 的空安全是一种消除代码中空引用风险的程序。如果 Kotlin 编译器发现任何空参数被传递而没有执行任何其他语句,它会立即抛出 NullPointerException。

Kotlin 的类型系统旨在消除代码中的 NullPointerException。 NullPointerException 仅在以下情况下才可能发生

  • 强制调用 throw NullPointerException();
  • 此运算符的未初始化,该运算符在构造函数中可用并在某处使用。
  • 使用外部 Java 代码,因为 Kotlin 与 Java 互操作。

Kotlin 可空类型和不可空类型

Kotlin 类型系统区分可以包含 null(可空引用)和不能包含 null(不可空引用)的引用。 通常,String 类型是不可空的。 要使字符串包含 null 值,我们必须通过在 String 后面添加 ? 来显式定义它们,例如: String?

可空类型

可空类型通过在 String 后面添加 ? 来声明,例如

Kotlin 可空类型示例

输出

null

不可空类型

不可空类型是声明为 String 类型的普通字符串,例如

将 null 值分配给不可空字符串时会发生什么?

输出

它将生成编译时错误。

Error:(3, 11) Kotlin: Null can not be a value of a non-null type String

在条件中检查 null

Kotlin 的 If 表达式用于检查条件并返回值。

输出

str is : Hello
str length is : 5
str is : null
b length is : -1