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