我试图让一个游戏的维护方法,我的朋友和我正在努力,基本上检查的子弹是设置边界之外,然后从一个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