Java - 是否可以为用户定义的类或java基元类型实例化

时间:2013-04-24 09:21:54

标签: java variables

我有一个用户定义的类,如下所示,

package com.hexgen.tools;

public class UserDefinedParams {
    private String dataType="";
    private String isArray="";
    public String getDataType() {
        return dataType;
    }
    public void setDataType(String dataType) {
        this.dataType = dataType;
    }
    public String getIsArray() {
        return isArray;
    }
    public void setIsArray(String isArray) {
        this.isArray = isArray;
    }

}

dataTypeisArray此值如果dataType - > this may have userdefined pojo class or java primitive type以及ifArray - > this will have Y or N。基于此如何创建类似:

如果dataType someUserDefinedPOJO和isArray Y

- > someUserDefinedPOJO[] obj = new someUserDefinedPOJO();

vise versa for java primitive types too.

is it possible through reflection in java?

怎么做?

最好的问候

4 个答案:

答案 0 :(得分:4)

只需使用HashMap<String,Object>, 您可以在那里定义所有变量,例如:

HashMap<String,Object> map=new HashMap<String,Object>();
map.put("myVarName",new Object());

System.out.printlb(map.get("myVarName"));

答案 1 :(得分:1)

Java中没有动态变量。必须在源代码中声明Java变量。

根据您要实现的目标,您应该使用数组,列表或地图;例如 请参阅here

int n[] = new int[3];
for (int i = 0; i < 3; i++) {
    n[i] = 5;
}

List<Integer> n = new ArrayList<Integer>();
for (int i = 1; i < 4; i++) {
    n.add(5);
}

Map<String, Integer> n = new HashMap<String, Integer>();
for (int i = 1; i < 4; i++) {
    n.put("n" + i, 5);
}

答案 2 :(得分:1)

我认为你应该研究一下java反射。但这已经在SO上发布了。

Read link 1

Read link 2

答案 3 :(得分:1)

另一种可能的方法是使用泛型:

public class CustomVariable<E> {
    private E var;

    public CustomVariable<E>(E value){
        var = value;
    }
}

但我不知道数组。