对Java很新颖。Java类型转换和调用方法
我有一个叫做GraphicsObject
的类和一个扩展它的类Bug
。
我必须保存所有GraphicsObject它一个ArrayList:
private ArrayList<GraphicsObject> gc = new ArrayList();
然后,我有一个被调用每帧称为updateObjects()的函数。
public void updateObjects(){
for(int i = 0; i < gc.size(); i++){
if(gc.get(i).toString().equals("Bug")){
(Bug)gc.get(i).moveNorth();
}
}
}
的类型转换失败,moveNorth()方法永远不会被识别,因为类GraphicsObject没有这种方法,只臭虫一样。
任何解决方案?
PS'新的ArrayList <>()','不新ArrayList' – oldrinb
顺便说一句,要检查如果'gc.get(i)'是'Bug',而不是'toString'是否等于''Bug'''。尝试'gc.get(i)instanceof Bug'。 – oldrinb
我创建了一个toString()函数,返回“Bug”,这就是我验证的方式。我不确定以前如何检查课程。现在我知道了 – nick