一連の人がforループで生成され、それらをさまざまなクラスで使用して特定のタスクを実行するシミュレーションを実行しようとしています。
プログラムからすべてのオブジェクトにアクセスできるようにしながら、n個の人のオブジェクトを生成する方法がよくわかりません(つまり、メソッドを使用できるように変数名を使用します)
一連の人がforループで生成され、それらをさまざまなクラスで使用して特定のタスクを実行するシミュレーションを実行しようとしています。
プログラムからすべてのオブジェクトにアクセスできるようにしながら、n個の人のオブジェクトを生成する方法がよくわかりません(つまり、メソッドを使用できるように変数名を使用します)
-Collection
フレームワークを使用
- Map
この実装に適しています。
Map<String,Person> personMap = HashMap<String,Person>();
personMap.put("person1",new Person("Vivek"));
personMap.put("person2",new Person("Vicky"));
通常、実行中のプログラム内から新しいソースコードを作成することはできません(ここで必要とは思わないバイトコード生成とクラスローダーに移動しない限り)。
それ以外の
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
配列を使用できます。
// 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();
}
代替案:人物のリスト/セット/マップを使用します。