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的吧,只要写好就行.

解决方案 »

  1.   

    public boolean equals(Object obj){
    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;
    }
      

  2.   

    Object怎么会有 name属性,当然报错