一、问题:
我们常用euqals方法判断两个字符串对象是否相等,如下:
strA.equals(strB);
但是这种方法当strA为空的时候会报空指针异常,一般用非空的对象调用equals方法。
二、解决方案:
在jdk7以后,java引入了比较两个对象的新的方法,Objects.equals(Object a, Object b) ,可以避免空指针异常。
import java.util.Objects; if(Objects.equals(strA, strB) ){ return 0; }
三、底层设计原理:
public static boolean equals(Object a,Object b){ return (a==b) || (a!=null && a.equals(b)) }