6

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

4

2 回答 2

13

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

如果参数彼此相等,则返回 true,否则返回 false。因此,如果两个参数都为 null,则返回 true,如果恰好一个参数为 null,则返回 false。否则,相等性是通过使用第一个参数的 equals 方法来确定的。

除了 Apache Commons Lang 中已经提到的函数之外,Google Guava 中还有一个Objects#equal()

于 2013-06-21T21:29:33.307 回答
5

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

您也可以查看 3rd 方库:

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

于 2013-06-21T21:27:26.163 回答