1.正确的equals必须判断类型:
public boolean equals(Object obj) {
//类型是否相符
if(!(obj instanceof MyKey))
return false;
//相符则强制转换
MyKey m=(MyKey)obj;
if(name.equals(m.name) && age==m.age ) //以前类型不对,Object没有name,age
return true;
else
return false;
}2.不懂你的意思,不需要知道,swing是怎么调用model的吧,只要写好就行.
public boolean equals(Object obj) {
//类型是否相符
if(!(obj instanceof MyKey))
return false;
//相符则强制转换
MyKey m=(MyKey)obj;
if(name.equals(m.name) && age==m.age ) //以前类型不对,Object没有name,age
return true;
else
return false;
}2.不懂你的意思,不需要知道,swing是怎么调用model的吧,只要写好就行.
if(name.equals(obj.name) && age==obj.age ) //此句报错
return true;
else
return false;
}obj.name,Object类怎么会有name属性,显然会错,比较之前应该牵制转换的boolean equals(Object obj){
if(obj==this) reurn true;
if(!(obj instanceof MyKey)) return false;
MyKey key =(MyKey)obj;
if(name.equals(key.name)&&(age==key.age))
return true;
return false;
}