對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