Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java与.NET object.Equals的等价物(对象,对象)_Java_Equals_Equality - Fatal编程技术网

Java与.NET object.Equals的等价物(对象,对象)

Java与.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)) 这种方法存在吗 注意我不想依赖任何

在.NET
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);
}