java对象判空时需使用null == obj。不能使用obj.equals(null),因为我们判空的前提是对象可能是null,null去调用equals方法显然是会抛出空指针异常。举例如下:
package demo;
public class ObjectEqualsDemo {
public static void main(String[] args) {
Object obj = getObj(0);
System.out.println(obj.equals(null));
System.out.println(obj == null);
System.out.println(null == obj);
}
public static Object getObj(int i) {
if (i == 0) {
return null;
} else {
return new Object();
}
}
}
当getObj(0),obj为null时,打印结果如下:
Exception in thread "main" java.lang.NullPointerException
at demo.ObjectEqualsDemo.main(ObjectEqualsDemo.java:7)
当getObj(1),obj不为null时,打印结果如下:
false false false
本文解析了在Java中为何不应使用obj.equals(null)来判断对象是否为空,而应使用null==obj。通过实例演示了当对象为null时调用equals方法会引发空指针异常的问题。

652

被折叠的 条评论
为什么被折叠?



