Eclipse自动生成了equals()方法

时间:2013-11-13 00:53:04

标签: java eclipse equals

在eclipse的自动生成的equals方法中,第一行比较了引用相等性

if(this == obj) return true;

据我所知= =不是真正的等式检查,它只检查2个引用是否指向同一个内存位置。那为什么要用呢?

2 个答案:

答案 0 :(得分:3)

假设您有两个参考

Foo foo = new Foo("some value", " many parameter", 1, 2, 3, 5); 
Foo foo2 = foo;

if (foo2.equals(foo))
    // do something

其中Foo是一个具有一堆字段的类,对于对象相等,所有字段都必须相等。

早期比较引用相等性可以使您不必检查引用对象上的每个字段,因为它们保证相等。

答案 1 :(得分:1)

检查参考相等性的速度非常快,因此在进行更积极的比较之前,他们也可以将其排除在外。