1、空指针异常是一种不受编程语言检查的运行时异常,只能由程序员主动通过逻辑判断来避免。
1.1、调用参数的方法之前先进行一个判空处理:
public void doStudy(Study study){
if(study != null){
study.readBooks();
study.doHomework();
}
}
1.2、Kotlin利用编译时判空检查的机制几乎杜绝了空指针异常:
fun doStudy(study: Study){//Kotlin默认所有的参数和变量都不可为空,所以这里传入的study也一定不会为空
study.readBooks()
study.doHomework()
}
1.3、如果你尝试向doStudy()函数传入null,则会提示如下错误
![](https://img.haomeiwen.com/i7899325/6815b0b0c0396607.jpg)
2、Kotlin将空指针异常的检查提前到了编译时期,如果存在空指针异常的风险,那么在编译的时候会直接报错,修正之后才能成功运行。
3、可为空的系统类型就是在类名的后面加上一个问号
fun doStudy(study: Study?){
if(study != null){//把空指针异常处理掉,才可以调用readBooks(),否则不允许编译通过
study.readBooks()
}
}
网友评论