java中api有这样的说明;
- 对于基本数据类型的比较,可以直接用“==”,表示判断两个变量是否引用的同一个物理地址,比较的是变量指针;
- 对象比较,用equals(),表示两个对象属性之间的具体比较,但是,要求equals()的对象不能为null,不然会抛NOP异常,这就比较尴尬了,如果我们事先无法确定两个obj不为null的话;
- 下面的小技巧,很好的避免了上述的尴尬,分享下
@Test
public void testEquals() {
Integer o1 = 2;
Integer o2 = null;
System.out.println(null == o1 ? null == o2 : o1.equals(o2));
}