Gemasoft Asked: 2020-11-17 08:36:57 +0800 CST 2020-11-17 08:36:57 +0800 CST 2020-11-17 08:36:57 +0800 CST 为什么在 Java 中使用 obj == null 而不是 obj.equals(null)? 772 我知道第二个选项实际上为空时会导致异常,但是还有其他原因吗? java 5 Answers Voted Best Answer rnrneverdies 2020-11-17T08:41:44+08:002020-11-17T08:41:44+08:00 equals, 应该比较两个对象的内容是等价的,而不管它们的身份(即与 比较的对象的实例==)。 变量不是对象,它是数据/对象类型的容器。如果变量为真null,则无法将其作为相等性进行比较,因为没有可比较的对象。 Edgar Conrado 2020-11-17T08:41:37+08:002020-11-17T08:41:37+08:00 运算符==比较对象引用。它.equals()检查两个对象是否相等,但是,即使对象相等,比较时null也会返回 a NullPointerException。 Dev. Joel 2020-11-17T09:25:31+08:002020-11-17T09:25:31+08:00 原因是因为您想比较参考,为此最好使用运算符== equals方法将比较 valor两个对象的相等性。发送的参数必须是 aObjeto而不是引用,否则会抛出NullPointerException 从 Java 开始,7.0我们添加了 Objects 类的方法equals ( Object a ,Object b) 来检查这个 Objects.equals(null,valor) Edwin Cotrina 2020-11-24T11:58:21+08:002020-11-24T11:58:21+08:00 我的意见: 当您用 (==) 比较两个对象时,您要比较的是这两个引用是否指向对象所在的同一内存地址。 例子: 人 person1 = new Person(); 人 person2 = new Person(); 如果你比较 person1 == person2 -> 结果为假。 但如果你这样做: person2 = person1 -> 您表示 person2 引用了 person1 引用的对象。 那么比较的时候 person1 == person2 -> 将返回 true。 案例 2 等于。 equals 方法在主类 Object 中声明,它指示两个对象是否相等(如果它们具有相同的内容),java 中的所有类都显式或隐式地继承自 object。 对于 java.lang.String 类,如果我们查看文档,它会覆盖 equals 方法。 例子: 字符串名称1 =“乔尔”;字符串名称2 =“乔尔”; name1.equals(name2) -> 结果为真,因为它们具有相同的内容。 如果你想比较你自己创建的对象,使用equals,你要做的就是重写equals方法并实现它。 在 Java 文档中,它说明了如何根据合同实现 equals 方法。 https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#equals(java.lang.Object) 我希望我有所帮助。 hubman 2020-11-17T09:11:02+08:002020-11-17T09:11:02+08:00 == 运算符在对象级别执行比较。也就是说,它确定两个对象是否相等。 equals() 方法比较 String 对象中的字符。
equals
, 应该比较两个对象的内容是等价的,而不管它们的身份(即与 比较的对象的实例==
)。变量不是对象,它是数据/对象类型的容器。如果变量为真
null
,则无法将其作为相等性进行比较,因为没有可比较的对象。运算符
==
比较对象引用。它.equals()
检查两个对象是否相等,但是,即使对象相等,比较时null也会返回 aNullPointerException
。原因是因为您想比较参考,为此最好使用运算符
==
equals方法将比较
valor
两个对象的相等性。发送的参数必须是 aObjeto
而不是引用,否则会抛出NullPointerException从 Java 开始,
7.0
我们添加了 Objects 类的方法equals ( Object a ,Object b) 来检查这个我的意见:
当您用 (==) 比较两个对象时,您要比较的是这两个引用是否指向对象所在的同一内存地址。
例子:
人 person1 = new Person(); 人 person2 = new Person();
如果你比较
person1 == person2 -> 结果为假。
但如果你这样做:
person2 = person1 -> 您表示 person2 引用了 person1 引用的对象。
那么比较的时候
person1 == person2 -> 将返回 true。
案例 2 等于。
equals 方法在主类 Object 中声明,它指示两个对象是否相等(如果它们具有相同的内容),java 中的所有类都显式或隐式地继承自 object。
对于 java.lang.String 类,如果我们查看文档,它会覆盖 equals 方法。
例子:
字符串名称1 =“乔尔”;字符串名称2 =“乔尔”;
name1.equals(name2) -> 结果为真,因为它们具有相同的内容。
如果你想比较你自己创建的对象,使用equals,你要做的就是重写equals方法并实现它。
在 Java 文档中,它说明了如何根据合同实现 equals 方法。
https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#equals(java.lang.Object)
我希望我有所帮助。
== 运算符在对象级别执行比较。也就是说,它确定两个对象是否相等。
equals() 方法比较 String 对象中的字符。