不安全和安全类型转换操作符

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

不安全类型转换操作符:as

有时无法进行变量类型转换,它会抛出一个异常,这被称为不安全类型转换。不安全类型转换通过中缀操作符 as 执行。

可空字符串(String?)不能转换为非空字符串(String),这将抛出一个异常。

上述程序会抛出异常

尝试将 Any 类型的整数值转换为字符串类型,会导致生成 ClassCastException。

为了使类型转换生效,源变量和目标变量都需要是可空的

输出

String unsafe cast

Kotlin 安全类型转换操作符:as?

Kotlin 提供了一个安全类型转换操作符 as?,用于安全地转换为一种类型。如果无法进行类型转换,它将返回 null,而不是抛出 ClassCastException 异常。

让我们看一个例子,尝试将 Any 类型的字符串值(最初由程序员而不是编译器知道)转换为可空字符串和可空整数。如果可能,它会转换该值,否则返回 null,即使无法进行类型转换,也不会抛出异常。

输出

Kotlin
null