Java与.NET object.Equals的等价物(对象,对象)
在.NETJava与.NET object.Equals的等价物(对象,对象),java,equals,equality,Java,Equals,Equality,在.NETSystem.Object中定义了一个静态方法 bool Equals(object a, object b); 在a可能为null的情况下,这是a.Equals(b)的有用替代方法。如果a和b均为null,则返回true 我在Java的框架中找不到等效的方法(我的Java最近有点生锈了)。我能收集到的最简洁的代码是: (a==null && b==null) || (a!=null && a.Equals(b)) 这种方法存在吗 注意我不想依赖任何
System.Object
中定义了一个静态方法
bool Equals(object a, object b);
在a
可能为null
的情况下,这是a.Equals(b)
的有用替代方法。如果a
和b
均为null
,则返回true
我在Java的框架中找不到等效的方法(我的Java最近有点生锈了)。我能收集到的最简洁的代码是:
(a==null && b==null) || (a!=null && a.Equals(b))
这种方法存在吗
注意我不想依赖任何外部框架。我只是好奇这个简单的方法是否存在于核心Java类库中。中的s提供了这样一个方法。我想您想要的是
如果您感兴趣,以下是库中的代码
public static boolean equals(Object object1, Object object2) {
if (object1 == object2) {
return true;
}
if ((object1 == null) || (object2 == null)) {
return false;
}
return object1.equals(object2);
}
目前,这在核心库中不存在,但它是Java1.7中添加的改进之一 在Java1.7中,可以使用
Objects.equals(objecta,objectb)
。在此之前,如果您不想添加外部依赖项,我建议您自己实现它
我真的不想为了这个简单的方法而依赖外部库。这真的不存在于核心类库中吗?不,这不在核心类库中;有些人会争论是否应该这样做。我已经用库中的代码更新了我的答案,你可以按原样使用。谢谢你的更新。我已经添加了一个类似于您在我的代码库中显示的方法。非常感谢您对这个问题的明确回答。
public static boolean equals(Object object1, Object object2) {
if (object1 == object2) {
return true;
}
if ((object1 == null) || (object2 == null)) {
return false;
}
return object1.equals(object2);
}