dcs*_*raw 43 java comparison null equals
JDK中是否有一个方法可以比较两个对象的相等性,从而计算空值?像这样的东西:
public static boolean equals(Object o1, Object o2)
{
if (o1 == null)
{
return o2 == null; // Two nulls are considered equal
}
else if (o2 == null)
{
return false;
}
return o1.equals(o2);
}
Run Code Online (Sandbox Code Playgroud)
自己编写这个方法似乎很愚蠢,因为我认为它必须已经存在于某个地方.
icz*_*cza 71
Java 7.0增加了一个新的方便的类:Objects.
它有一个完全适用于此的方法: Objects.equals(Object a, Object b)
Yis*_*hai 17
Apache Commons Lang有这样一个方法:ObjectUtils.equals(object1,object2).你不希望在这种方法上使用泛型,它会导致伪造的编译错误,至少在一般情况下是这样.Equals非常清楚(或者应该 - 它是合同的一部分)来检查对象的类并返回false,因此它不需要任何额外的类型安全性.
Edw*_*alk 16
FWIW,这是我的实施:
private static boolean equals(Object a, Object b) {
return a == b || (a != null && a.equals(b));
}
Run Code Online (Sandbox Code Playgroud)
在我的应用程序中,我知道a和b将始终是相同的类型,但我怀疑即使它们不是这样也能正常工作,前提是a.equals()是合理实现的.
public static boolean equals(Object object1, Object object2) {
if (object1 == null || object2 == null) {
return object1 == object2;
}
return object1.equals(object2);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31330 次 |
| 最近记录: |