如何防止在等于之前进行空检查

2022-09-02 02:11:13

我发现这样的东西在方法上相当烦人和丑陋:equals

if (field == null)
{
    if (other.field != null)
        return false;
}
else if ( ! field.equals(other.field))
    return false;

在C#中,我本可以这样做:

if( ! Object.Equals(field, other.field))
    return false;

Java中是否有类似的东西,或者如果事情做这种事情的首选方法是什么?


答案 1

Java 7 提供 java.util.Objects.equals


答案 2

使用 commons-lang:

org.apache.commons.lang.ObjectUtils.equals(Object object1, Object object2)

源代码:

public static boolean equals(Object object1, Object object2) {
    if (object1 == object2) {
        return true;
    }
    if ((object1 == null) || (object2 == null)) {
        return false;
    }
    return object1.equals(object2);
}

从阿帕奇

http://commons.apache.org/lang/

这大约相当于你在C中所做的。#


推荐