动态创建对象

时间:2012-07-10 10:54:22

标签: java

我有一个接收字符串数组的方法,我需要创建具有适当名称的对象。

例如:

public class temp {    
   public static void main(String[] args){

    String[] a=new String[3];
    a[0]="first";
    a[1]="second";
    a[2]="third";
    createObjects(a);

   }
   public static void createObjects(String[] s)
   {
    //I want to have integers with same names
    int s[0],s[1],s[2];
   }
}

如果我收到(“一个”,“两个”),我必须创建:

Object one;
Object two;

如果我收到(“男孩”,“女孩”),我必须创建:

Object boy;
Object girl;

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:7)

在java中无法做到这一点。您可以创建Map,其中键是字符串,值是对象。

答案 1 :(得分:0)

首先创建Map,其中包含密钥作为Integers的字符串表示。

public class Temp {

static Map<String, Integer> lMap;

static {

    lMap = new HashMap<String, Integer>();
    lMap.put("first", 1);
    lMap.put("second", 2);
    lMap.put("third", 3);
}

public static void main(String[] args) {
    Map<String, Integer> lMap = new HashMap<String, Integer>();
    String[] a = new String[3];
    a[0] = "first";
    a[1] = "second";
    a[2] = "third";

    Integer[] iArray=createObjects(a);
    for(Integer i:iArray){

        System.out.println(i);
    }

}

public static Integer[] createObjects(String[] s) {
    // I want to have integers with same names
    Integer[] number = new Integer[s.length];
    for (int i = 0; i < s.length; i++) {
        number[i] = lMap.get(s[i]);
    }
    return number;
}

}