[求助]equals的大问题
些代码为什么会是false?为什么!equals不是比的对象的内容吗?都是指向100呀,请知道内情的人透露一二,谢谢了!
class Value {
int i;
}
public class EqualsMethod2 {
public static void main(String[] args) {
Value v1 = new Value();
Value v2 = new Value();
v1.i = v2.i = 100;
System.out.println(v1.equals(v2));
}
}
搜索更多相关的解决方案:
equals
----------------解决方案--------------------------------------------------------
那是因为你没有重写equals方法
所以它调用的是Object的方法,所以会得出false
你应该改为
class Value{
int i;
public boolean equals(Object o){
if(o instanceof Value){
return this.i==((Value)o).i;
}
else
return false;
}
}
----------------解决方案--------------------------------------------------------
谢谢版主!问题可以解决
但我想知道instanceof是什么意思?
我查API好像没有..
能告诉我具体哪个类中吗?
----------------解决方案--------------------------------------------------------
问题已解决,是判断 是否是一个对象的...
谢谢版主的帮助.
----------------解决方案--------------------------------------------------------
你的头像不错,写得很好
----------------解决方案--------------------------------------------------------
又学到了东西`
----------------解决方案--------------------------------------------------------
我也是!~
----------------解决方案--------------------------------------------------------