在 Kotlin 中,非空类型(Non-null types)是指那些不能为 null 的类型。为了将非空类型转换为其他类型,你需要使用安全调用操作符(safe call operator)?.
。这个操作符允许你在一个可空对象上调用非空成员,如果对象为 null,则返回 null。
以下是一个示例,展示了如何将非空类型转换为其他类型:
fun main() {
val nonNullString: String = "Hello, World!"
// 将非空字符串转换为整数
val intValue: Int? = nonNullString.toIntOrNull()
// 检查转换是否成功
if (intValue != null) {
println("转换成功,整数值为:$intValue")
} else {
println("转换失败,字符串不能转换为整数")
}
}
在这个示例中,我们首先创建了一个非空字符串 nonNullString
。然后,我们使用 toIntOrNull()
扩展函数将其转换为整数。如果转换成功,intValue
将是一个非空整数,否则它将为 null。最后,我们检查 intValue
是否为 null,并相应地输出结果。
需要注意的是,如果你确定非空类型永远不会为 null,你可以直接使用非空断言操作符(non-null assertion operator)!!
。这将告诉编译器你确定该值不为 null,如果值为 null,将抛出 NullPointerException
。例如:
fun main() {
val nonNullString: String = "Hello, World!"
// 使用非空断言操作符将字符串转换为整数
val intValue = nonNullString.toInt()
println("整数值为:$intValue")
}
在这个示例中,我们使用 toInt()
函数将 nonNullString
转换为整数,并使用非空断言操作符 !!
告诉编译器我们确定该值不为 null。如果 nonNullString
为 null,程序将抛出 NullPointerException
。