NullPointerException是大家都不想遇到的东西,很讨厌,但其实它往往是由于我们的不良编码习惯导致的。
定义一个类:
class Person {
int id;
String name;
// ...
}
编码习惯不好的人可能会这么来写:
p.name += "Smith";
这根本没判空啊!
那还有的人做了基本的判空:
if (p.name != null) {
p.name += "Smith";
}
还是不对啊,你有没有想到Person对象本身就可能是空的啊!
所以可以这么写:
if (p != null && p.name != null) {
p.name += "Smith";
}
当然了,比如用Optional做判空处理之类的我们这里就不谈了,这里简单聊聊判空的一点小细节就好啦!
在想到判属性是否为空的时候,千万不要忘了先判对象是否为空!