2

我想编写一个程序,在循环中创建一组对象......

(IE)

String newFirm = "empty";

for(int i=0; i<30; i++)
    {
          newFirm = "firm" + i;
          firm newFirm = new firm();
    }

然后当然我需要类似的东西

 stringToObject = "firm" + x;
 stringToObject.type = "service";
 stringToObject.size = 10000;

显然这段代码是虚构的,但它表达了我理想的创建和调用对象的方式。该程序的性质使得最终的公司(或其他对象)数量在编译时是未知的。

有没有一种方法可以将给定的字符串转换为对象的名称(调用或创建)以及“动态”创建对象?

4

2 回答 2

1

听起来像是 ArrayList 的工作。

ArrayList<Firm> myList = new ArrayList<Firm>();

在你的循环中,

Firm firm = new Firm();
firm.type = "service";
myList.add(firm);

为了得到它,

Firm f = myList.get(index);
于 2013-11-04T06:14:06.893 回答
1

将给定的字符串转换为对象的名称

您需要使用您手中的字符串来引用一个对象。我会建议Hashmap<String,Object>

例如:- 你有一个字符串,

String name="object_name";

你的课是Firm。现在,

Hashmap<String,Firm> objs=new Hashmap<String,Firm>();// note:your for loop comes after this line
Firm new_firm=new Firm();
new_firm.type = "service";
new_firm.size = 10000;
objs.put(name,new_firm);

现在您可以将您的对象与您手中的字符串作为

objs.get("object_name");
于 2013-11-04T06:50:25.123 回答