我試圖讓一個遊戲的維護方法,我的朋友和我正在努力,基本上檢查的子彈是設置邊界之外,然後從一個ArrayList(活着)到另一個(死亡)。試圖編輯通過WIldcard傳遞ArrayLists
我們有許多ArrayLists,包含從Bullet_Enemy類擴展的不同類型的項目符號。
維護類如下(使用Java):
public void maintenance(ArrayList<? extends Bullet_Enemy> aliveList, ArrayList<? extends Bullet_Enemy> deadList)
{ for(i = 0; i < aliveList.size(); i++)
{ if(aliveList.get(i).[Position] [is] [outside Boundary])
{ deadList.add(aliveList.get(i));
aliveList.get(i).reset();
aliveList.remove(i);
}
}
}
時遇到的問題是,在該行 「deadList.add(aliveList.get(I));」告訴我,有一個錯誤:
"The method add(capture#33-of ? extends Bullet_Enemy) in the type ArrayList<capture#33-of ? extends Bullet_Enemy> is not applicable for the arguments (capture#34-of ? extends Bullet_Enemy)"
我真的不知道從哪裏甚至開始對這個問題 - 甚至什麼條件來搜索周圍的谷歌將是有益的,因爲有人會解釋爲什麼這個問題發生。
謝謝!
謝謝,完美無缺! 我最終使用第一種方法,因爲第二種方法基本上是我剛剛切換的(基本上我無法傳遞ArrayList,因爲雖然Bullet_Enemy_Subclass1擴展了Bullet_Enemy,但Bullet_Enemy_Subclass1的ArrayList沒有擴展ArrayList Bullet_Enemy或者其他一些,現在一切都很好,謝謝! –
B10HAzARD