📅  最后修改于: 2023-12-03 15:03:18.427000             🧑  作者: Mango
在Kotlin中,NullPointerException是一种常见的异常类型。如果某个对象为空(即null),而你试图在它上面调用某个方法或访问它的属性,就会抛出这个异常。
val str: String? = null
val len = str.length // throws NullPointerException
val str: String? = null
val len = str?.length // returns null
val upperCase = str?.toUpperCase() // returns null
val str: String? = null
val len: Int = str as Int // throws ClassCastException
使用?.
操作符,如果对象为空,则返回null
,不会抛出异常。
val str: String? = null
val len = str?.length // returns null
使用!!
操作符,如果对象为空,则抛出NullPointerException
。
val str: String? = null
val len = str!!.length // throws NullPointerException
当对象为空时,返回一个默认值。
val str: String? = null
val len = str?.length ?: 0 // returns 0
通过使用智能类型转换,将可空类型转换为非空类型。
val str: String? = null
if (str != null) {
val len = str.length // str is automatically cast to non-nullable type
}
NullPointerException在Kotlin中是一个常见的异常,但它可以通过一些简单的技巧避免。使用安全调用运算符、非空断言操作符、Elvis操作符和智能类型转换都是有效的方法,可以帮助你编写更加健壮的代码。