对于我的小游戏,我在我的主类中有一个名为“walls”的ArrayList,用于保存类“Wall”的所有实例。
样本的第一部分:
walls = new ArrayList<>();
样本的第二部分:
wall = new Wall(x, y);
walls.add(wall);
此代码位于主类中
wall(类Wall)和wall(ArrayList)的实际变量位于主类的构造函数之上,因此它们可以在主类的多个方法中使用
在水平设置期间,此样本的底部两行被调用多次。 Wall的每个实例都是一个正方形网格中的一个墙砖,它们一起构成了水平图
如何在列表中的所有实例中调用Wall-class的方法(更改wall-graphic)?
Wall-class中的方法已经完成并且可以工作。但我不知道,如何为该ArrayList的所有成员调用它。
简单地说:
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()));
Wall-class中的方法已经完成并且可以工作。但我不知道,如何为该ArrayList的所有成员调用它。
您可以迭代列表的所有成员,并在每个成员上调用该方法。有多种方法可以实现细节。但Java没有通过单个方法调用表达式在多个对象上调用方法的语法或意义。
但是如果你想避免为每个Wall
单独调用方法,那么考虑插入一个间接层。例如,创建一个TileSet
类,其中包含许多或所有Wall
实例应该具有的所有细节,并为每个Wall
提供对同一个TileSet
对象的引用。然后,您可以通过仅修改一个Wall
对象来更新所有TileSet
s所依赖的数据。
我不再需要答案了。
for (int i = 0; i < walls.size(); i++)
{
Wall wall = walls.get(i);
wall.changeWallIce();
}
这就是我需要的。现在我是靠自己找到的。