Java的NullPointException是经常遇到的异常,也是最让人头疼的一个异常。Kotlin为了解决这个问题,引进了可空类型,将运行时可能发生异常提前到编译期发现。
Kotlin中有可空类型,这种类型表示取值可能为空;而一般类型,则取值不能为空。区别是类型后面有一个?,表示这个类型是可空的。
举个栗子:
var s?=null
var s="Hello World"
var s1=null //编译器提示错误,因为s1是不可空的类型
int length(String s){
if(s==null){
return 0;
}else{
return s.length();
}
}
fun length(s: String?):Int?{
return s?.length
}
因为你自己确保了这个可空类型不为空,那么如果为空,那不好意思了,你就会碰到空指针异常了,Exception in thread "main" kotlin.KotlinNullPointerException 。
所以说,Kotlin中虽然有了可空类型,但也不是就没有空指针异常哦。
?. ?: !! 三种操作符要熟练使用,使用起来比Java写很多判断null的代码清爽多了,赶紧用起来吧,小伙伴们!