关于equals比较对象内容的问题。
都说equals比较的是对象内容。那么我写一个TestBean类:
public TestBean{}
然后测试:
public class TestMain {
public static void main(String[] args) {
TestBean t1=new TestBean();
TestBean t2=new TestBean();
System.out.println(t1.equals(t2));
}
}
为什么t1与t2不相等呢?如果说equals方法内部首先是比较hashcode,那我重写掉hashcode:
public class TestBean {
@Override
public int hashCode() {
return 1;
}
}
然后再执行测试类,还是返回false。
求人解答,谢谢!
[解决办法]
楼主搞混了。Object 的equals方法比较的是地址。
所以你的两个TestBean 对象,equals一下当然返回false。
String类的equals方法比较内容,因为里面是重写了equals方法了。默认都是比较的地址。
[解决办法]