【问题标题】:How do I convert a string to an new object's name?如何将字符串转换为新对象的名称?
【发布时间】:2013-11-04 04:10:06
【问题描述】:

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

(即)

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;

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

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

【问题讨论】:

  • 你说的是对象还是类?
  • 您正在寻找收藏品。
  • @bevynQ 类的对象

标签: java object constructor multiple-constructors


【解决方案1】:

听起来像是 ArrayList 的工作。

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

在你的循环中,

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

为了得到它,

Firm f = myList.get(index);

【讨论】:

【解决方案2】:

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

你需要用你手中的字符串来引用一个对象。我会建议Hashmap&lt;String,Object&gt;

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

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");

【讨论】:

    猜你喜欢
    • 2017-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-25
    • 2021-05-22
    • 1970-01-01
    • 2013-01-12
    相关资源
    最近更新 更多