天天看點

Java equals 和 Objects.equals

equals源碼

在包

java.lang.Object

public boolean equals(Object obj) {
    return (this == obj);
}
           

equals 使用的 == 去進行判斷, 是基本資料類型的時候判斷值是否相等, 當時引用資料類型的時候判斷位址值是否相等

使用 a.equals(b)

Objects.equals源碼

在包

java.util.Objects

public static boolean equals(Object a, Object b) {
    return (a == b) || (a != null && a.equals(b));
}
           

使用 Objects.equals(a,b)

差別

使用

equals

的時候, 如果參數為null, 就會發生

空指針異常NullPointerException

, 這種情況就要使用

Objects.equals