我有以下代码。
public class SomeClass{
OtherClass clas = new OtherClass();
OtherClass some;
some=this;
if(some != this) {
s.y.s.o("true");
}
我的问题是哪一个是正确的?
一些!= this或some.equals(this)?
答案 0 :(得分:20)
要比较对象引用,请使用==
和!=
,而equals
用于比较值。
答案 1 :(得分:7)
如果要检查两个对象的身份 [如果它们实际上是同一个对象],则可以使用operator!=
或operator==
如果要检查相等,请使用equals()
。 [如果两个对象相等,因为equals()
方法定义了它们。)
很难知道你想要实现什么,但是通常在比较两个参考对象时,我们想要使用equals()
。
答案 2 :(得分:7)
你想要比较什么?
==
进行比较,以查看两个引用是否与EXACT SAME OBJECT相同。
equals
比较两个引用是否属于具有匹配属性的对象,具体取决于类equals
实现中特定于类的标准。
答案 3 :(得分:2)
在Java ==
中比较引用(即地址),而equals
比较对象相等性(您可以覆盖它以基于您认为合适的成员变量进行比较)
在您的帖子中进行比较,看看some
是否与this
是同一个对象。这是你想要做的吗?如果是,那么some!=this
是正确的(false
是some
,因为this
是指{{1}})
答案 4 :(得分:2)
==比较参考文献。也就是说,这两个对象是否位于同一个地方。 .Equals比较那些引用指向的东西。也就是说,这两个对象是否相同。