我想编写一个在循环中创建一组对象的程序....
(即)
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;
显然这段代码是虚构的,但它表达了我理想地创建和调用对象的方式。该程序的性质使得在编译时不知道最终公司(或其他对象)的数量。
是否有一种方法可以将给定的字符串转换为对象的名称(要么调用还是要创建)以及“动态”创建对象?
答案 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");