簡體   English   中英

Java是否也對處理空值的相等性進行了通用測試?

[英]Does Java have generic test for equality that also handles nulls?

Java標准庫中是否存在具有靜態相等函數的任何地方?

public static <T> boolean equals(T a, T b)
{
    if (a == null)
        return b == null;
    else if (b == null)
        return false;
    else
        return a.equals(b);
}

我剛剛在一個新的項目Util類中實現了這個,無數次。 似乎令人難以置信的是它不會作為標准庫函數發布......

在JDK 7中有Objects#equals() 來自Javadoc:

如果參數彼此相等則返回true,否則返回false。 因此,如果兩個參數都為null,則返回true,如果只有一個參數為null,則返回false。 否則,通過使用第一個參數的equals方法確定相等性。

除了Apache Commons Lang中已經提到的功能之外,Google Guava還有一個, Objects#equal()

Java 7以后我們有JDK 7 Objects#equals()

您也可以查看第三方庫:

Apache Commons ObjectUtils#equals() ,Google的Guava Objects#equal()和Spring的ObjectUtils #nullSafeEquals()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM