我有一个用户定义的类,如下所示,
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;
}
}
dataType
和isArray
此值如果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?
怎么做?
最好的问候
答案 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)
答案 3 :(得分:1)
另一种可能的方法是使用泛型:
public class CustomVariable<E> {
private E var;
public CustomVariable<E>(E value){
var = value;
}
}
但我不知道数组。