我需要在循环中创建多个对象.我在其他地方读过,将它们添加到列表中可以完成这项任务,但是下面的代码给了我一组相同对象的副本,即所有具有相同值的副本.知道如何创建多个对象,而不仅仅是同一副本的副本吗?谢谢.
(下面的代码是我正在处理的简化版本)
System.out.println("Creating swarm of size "+swarmSize);
List<Dog> myDogs = new ArrayList<Dog>();
for(int i = 0; i < dogAmount; i++) {
System.out.println("New Dog # "+i);
myDogs.add(new Dog(i));
}
Dog first = myDogs.get(0);
Dog other = myDogs.get(3);
System.out.println(first.getID()+" "+other.getID());
//prints out the number of dogs I should have created -1 both times
Run Code Online (Sandbox Code Playgroud)
我的狗课
import java.util.*;
public class Dog{
public static int dogID;
public Dog(int ID) {
dogID = ID;
}
public int getID() {
return dogID;
}
public void setID(int id) {
dogID = id;
}
}
Run Code Online (Sandbox Code Playgroud)
更改
public static int dogID;
Run Code Online (Sandbox Code Playgroud)
至
public int dogID;
Run Code Online (Sandbox Code Playgroud)
或者更好,
private int dogID;
Run Code Online (Sandbox Code Playgroud)
因为你有一个getter函数,所以其他类不需要直接访问该字段.