一、問題:
我們常用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)) }