在编程中遇到如下情况你该如何处理?
Integer s=null;
Integer t=1;
//如何比较他们是否相等?
//那么现在呢?
Integer s=1;
Integer t=null;
//如果你使用equals()
s.equals(t);
//会爆出如下
Exception in thread "main" java.lang.NullPointerException
//那么在java1.8之前你该如何比较呢?
public boolean isEquals(Integer s, Integer t) {
if (s == null || t == null) {
return s == t;
}
return s.equals(t);
}
在java1.8有了Optional类,他的Optional.ofNullable();会将null空指针封装成Optional.empty对象,此时就可以进行比较了
;
Integer j=1;
System.out.println(Optional.ofNullable(i).equals(Optional.ofNullable(j)));
//false
Integer i=130;
Integer j=130;
System.out.println(Optional.ofNullable(i).equals(Optional.ofNullable(j)));