2013-06-21 12 views
6

Java標準庫中是否存在具有靜態相等函數的任何地方?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類中實現了這一點,無數次。似乎令人難以置信的是,它不會作爲標準庫函數發貨......

+1

在本地Java,沒有(據我所知)。這在像[Apache Commons](http://commons.apache.org/)這樣的庫中有所涉及。 –

+0

@LuiggiMendoza從7那裏是 – fge

+0

@VicSchappert我們能夠回答這個問題到你滿意嗎?或者你錯過了一些東西?如果不是,你應該接受 – martido

回答

13

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

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

除了在Apache的Commons Lang中已經提到的功能裏也有一個在谷歌番石榴,Objects#equal()

+0

從http:///stackoverflow.com/help/editing「如果您不滿意您的貢獻是由其他可信用戶協作編輯的想法,那麼這可能不適合您。」 –

+0

@SteveKuo你是什麼意思?我不知道我做錯了什麼...... – martido

+0

我指的是撤消我的編輯。也許在stackoverflow中有一個錯誤,你沒有明確撤消它。 –