对于我的小游戏,我的主类中有一个名为“ walls”的ArrayList,用于容纳类“ Wall”的所有实例。
样本的第一部分:
walls = new ArrayList<>();
示例的第二部分:
wall = new Wall(x, y);
walls.add(wall);
此代码位于主类中
wall(Wall类)和wall(ArrayList)的实际变量位于主类的构造函数上方,因此可以在主类的多种方法中使用
在级别设置过程中,多次调用了此示例的底部两行。 Wall的每个实例都是正方形网格中的一个墙砖,它们共同构成了关卡图
如何在列表的所有实例中调用Wall类的方法(更改Wall-graphic)?
Wall类中的方法已完成并且可以工作。 但是我不知道如何为该ArrayList的所有成员调用它。
答案 0 :(得分:1)
简单地为:
List<Walls> walls = new ArrayList<>();
...
Wall wall = new Wall(x, y);
walls.add(wall);
...
# Java <8 Flavour
for (Wall wall : walls) {
wall.yourMethod();
}
# Java > 8 Flavour:
walls.stream().forEach(w -> w.yourMethod()));
答案 1 :(得分:0)
Wall类中的方法已完成并且可以工作。但是我不知道如何为ArrayList的所有成员调用它。
您可以迭代列表的所有成员,并在每个成员上调用方法。有多种实现细节的方法。但是Java没有通过单个方法调用表达式针对多个对象调用方法的语法或意义。
但是,如果要避免对每个Wall
进行单独的方法调用,请考虑插入一个间接级别。例如,创建一个TileSet
类,其中包含许多或所有Wall
实例应该共有的所有详细信息,并为每个Wall
提供对同一TileSet
对象的引用。然后,您只需修改一个Wall
对象即可更新所有TileSet
所依赖的数据。
答案 2 :(得分:-1)
我不再需要答案了。
for (int i = 0; i < walls.size(); i++)
{
Wall wall = walls.get(i);
wall.changeWallIce();
}
这就是我需要的。 现在我自己找到了。