我创建了一个名为Tilecreator
的类。在这个类中,有方法GenerateTile()
,它将一些值应用于对象。
如果我创建了这些对象的数组,如何在循环中对它们应用值?
例如,我尝试过:
for(int i = 0; i < 10; i++){
createdTile[] tile[i] = new Tilecreator();
tile[i].GenerateTile(
}
答案 0 :(得分:0)
Tile[] tiles = new Tile[100];
如果你想遍历一个数组并检查是否有任何空位要初始化:
for(int id = 0; id < tiles.length; id++) //loops through entire array starting at tiles[0]
if(tiles[id] == null) { //checks if spot in array is available
tiles[id] = value; //= new Tile(); initializes value for reference in array
tiles[id].method(); //calls method from initialized reference
}
如果您不关心空白点,请取出if(tiles[id] == null)
如果你只是想循环一个已经有值的数组,并想要触发方法
for(Tile tile : tiles)
tile.method()
要初始化数组点,你必须使用我展示的第一个forloop(基本forloop)。增强的forloops(第二个循环示例)使用数组中值的副本,而不是实际的引用本身,因此您无法使用该副本进行初始化
答案 1 :(得分:0)
我假设在循环之前有这样的东西:
Tile[] tile = new Tile[10];
如果GenerateTile方法是静态的,并且该方法接受tile对象,则可以执行以下操作:
for(int i = 0; i < 10; i++){
tile[i] = new Tile(); // or another constructor
tile[i] = Tilecreator.GenerateTile(tile[i]);
}
如果你有一个Tilecreator对象数组(我认为是这种情况,请给出你的语句“如果我已经创建了这些对象的数组......”):
Tilecreator[] tile = new Tilecreator[10];
for(int i = 0; i < 10; i++){
tile[i] = new Tilecreator(); // or another constructor
tile[i].GenerateTile();
}
如果是这种情况,我会将Tilecreator重命名为Tile,并有一个单独的Tilecreator类来处理tile数组的创建。