如何将字符串转换为新对象的名称?

时间:2013-11-04 04:10:06

标签: java object constructor multiple-constructors

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

(即)

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;

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

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

2 个答案:

答案 0 :(得分:1)

听起来像是ArrayList的工作。

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

在你的循环中,

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

为了得到它,

Firm f = myList.get(index);

答案 1 :(得分: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");