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
课程中实现了这一点,无数次。似乎令人难以置信的是它不会作为标准库函数发布......
答案 0 :(得分:13)
在JDK 7中有Objects#equals()。来自Javadoc:
如果参数彼此相等且为false,则返回true 除此以外。因此,如果两个参数都为null,则返回true 如果只有一个参数为null,则返回false。除此以外, 通过使用第一个的equals方法确定相等性 参数。
除了Apache Commons Lang中已经提到的功能之外,Google Guava还有一个功能Objects#equal():
答案 1 :(得分:5)
Java 7以后我们有JDK 7 Objects#equals()。
您也可以查看第三方库:
Apache Commons ObjectUtils#equals(),Google的Guava Objects#equal()和Spring的ObjectUtils#nullSafeEquals()。