我正在尝试运行模拟,其中在for循环中生成一系列人,然后我在不同的类中使用它们来执行某些任务。
我不确定如何生成n个人对象,同时使程序可以访问它们(即具有变量名称,以便我可以使用他们的方法)
答案 0 :(得分:2)
- 使用Collection
框架
- Map
适用于此实施。
Map<String,Person> personMap = HashMap<String,Person>();
personMap.put("person1",new Person("Vivek"));
personMap.put("person2",new Person("Vicky"));
答案 1 :(得分:1)
您通常无法在正在运行的程序中创建新的源代码(除非您转到我认为您不需要的字节代码生成和类加载器)。
而不是
Person a = new Person("A");
Person b = new Person("B");
a.doStuff();
b.doStuff();
考虑使用地图(未经测试):
Map<String, Person> map = new HashMap();
map.put("a", new Person("A"));
map.put("b", new Person("B"));
map.get("a").doStuff(); // on A
map.get("b").doStuff(); // on B
答案 2 :(得分:1)
您可以使用数组。
// create people
int n = 30;
Human[] human = new Human[n];
for (int i=0; i<n; i++) {
human[i] = new Human();
}
// access specific person
human[3].doSomething();
// access all people
for (Human h:human) {
h.doSomething();
}
替代方案:使用人员列表/集合/地图。