【发布时间】:2018-12-03 21:55:13
【问题描述】:
我必须做以下equals方法:
public boolean equals(ParentClass pa) {
if (!(pa instanceof ChildClass))
return false;
boolean sameID = ID.equals(pa.getID());
return super.equals(pa) && sameID;
}
ChildClass 类是 ParentClass 类的子类,这就是它的 equals 方法。方法 getId() 仅在 ChildClass 中,但我需要知道如何让方法 pa.getID() 工作,有什么方法可以在这里进行转换吗?因为我得到一个错误,编译器不能确定 pa 是否是 Child 的一个实例。
这是我得到的错误:
Error:(19, 73) java: cannot find symbol
symbol: method getID()
location: variable pa of type ParentClass
我需要方法是 ParentClass 类型,因为当 ParentClass 类型的对象而不是错误时,函数应该返回 false。
任何帮助将不胜感激。
【问题讨论】:
-
请在堆栈跟踪中提供完整的错误。
-
equals应该使用Object,而不是ParentClass。 -
你试过这个吗:ChildClass pa2 = (ChildClass) pa;然后使用 pa2.getID();?
-
是的,现在可以了,这就是问题所在,谢谢@Spara