在循环中定义对象

时间:2011-04-16 08:11:53

标签: java instantiation

我坚持使用不同名称定义多个对象的困境,我想根据我需要从程序的另一部分获取的数量来定义一定数量的对象

零件对象(i)不正确,我只是把它放在那里来说明我的问题

    for(int i = 1; i <= amountOfObjectsNeeded; i++){

        someclass object(i) = new someclass();
    }

有谁知道如何解决这个问题?

2 个答案:

答案 0 :(得分:5)

在这种情况下你应该使用一个数组:

Someclass[] array = new Someclass[amountOfObjectsNeeded];
for (int i = 0; i < amountOfObjectsNeeded; i++) {
    array[i] = new Someclass();
}

注意循环从0开始而不是1开始 - Java中的数组从0开始编制索引。

答案 1 :(得分:2)

如果要为对象指定名称/ ID并稍后通过这些名称访问它们,请考虑使用地图

 Map<String, SomeClass> map = new HashMap<String, SomeClass>();
 for (int i = 0; i < numberOfObjects; i++) {
    String name = getNameForObjectNr(i);
    map.put(name, new SomeClass());
 }

 // later on

 SomeClass someClass = map.get(someName);  // to read an instance from the map