Java是否也对处理空值的相等性进行了通用测试?

时间:2013-06-21 21:25:38

标签: 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课程中实现了这一点,无数次。似乎令人难以置信的是它不会作为标准库函数发布......

2 个答案:

答案 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()