让我们考虑下面的简单类。
class Point {
private float x;
private float y;
public Point(float x, float y){
this.x=x;
this.y=y;
}
public float getX(){return this.x;}
public float getY(){return this.y;}
public void setX(float x){this.x=x;}
public void setY(float y){this.y=y;}
@Override
public String toString(){
return ("x = "+this.x+", y = "+this.y+";");
}
@Override
public Point clone(){
return new Point(this.x,this.y);
}
@Override
public boolean equals(Object object){
if (object != null && object.getClass()==Point.class){
return object.getX()==this.x && object.getY()==this.y;
}
else{
return false;
}
}
问题在于重写方法equals:我使用一般的Object类作为属性以使其更灵活,但是netbeans在返回行打印错误:“对象没有方法getX”,这是完全合乎逻辑的。
但问题仍然存在,我如何才能解决这个问题?
先谢谢你了
1条答案
按热度按时间mccptt671#
这非常简单,但需要强制转换
object
:这也是相关的:Casting in equals method