Java1.8解决空指针比较问题

在编程中遇到如下情况你该如何处理?

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 i=null;
        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)));
        //true

你可能感兴趣的:(JAVA)