如何比较java中的两个对象/引用?

时间:2012-03-02 17:03:45

标签: java

  

可能重复:
  Equals method for objects

我有以下代码。

public class SomeClass{ 
OtherClass clas = new OtherClass();  
OtherClass some; 
some=this; 
if(some != this) {
    s.y.s.o("true");
}

我的问题是哪一个是正确的?
 一些!= this或some.equals(this)?

5 个答案:

答案 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是正确的(falsesome,因为this是指{{1}})

答案 4 :(得分:2)

==比较参考文献。也就是说,这两个对象是否位于同一个地方。 .Equals比较那些引用指向的东西。也就是说,这两个对象是否相同。