package test;public class Test1 { private String value =null;
public Test1(String value){
this.value =value;
}
public boolean equals(Test1 o){
if(o==this){
return true;
}
if(o instanceof Test1){
Test1 test1=(Test1) o;
return value.equals(test1.value);
}
return false;
}
public static void main(String[] args){
Test1 t = new Test1("object");
Object to = new Test1("object");
System.out.println(t.equals(to));
}
}
输出就结果是false,求解释,谢谢。
public Test1(String value){
this.value =value;
}
public boolean equals(Test1 o){
if(o==this){
return true;
}
if(o instanceof Test1){
Test1 test1=(Test1) o;
return value.equals(test1.value);
}
return false;
}
public static void main(String[] args){
Test1 t = new Test1("object");
Object to = new Test1("object");
System.out.println(t.equals(to));
}
}
输出就结果是false,求解释,谢谢。
你现在调用的还是Object.equals(Object)方法。
public boolean equals(
Test1Object o)重写的话建议在方法前加@Override
...
}
你现在调用的还是Object.equals(Object)方法。
public boolean equals(Test1 Object o)
建议重写方法 ,方法定义部分还是去API中复制一份,出来,或者用IDE来生成
看看这个
两个对象 equals的时候,hashCode必须相等,但hashCode相等,对象不一定equals。 如果没有重写 hashcode方法,使用Object自带的hashCode,无法保证两个对象equals的时候 hashCode 必须相等的条件。需要重写hashcode方法.