我的问题是在创建对象时动态命名对象,并且名称来自用户。
以下是我的代码,我可以在其中动态创建一个对象,但我必须特别指出它,就像在这种情况下'obj'
private Class ClassName=null;
private Object obj=null;
ClassName=Class.forName(token[2]);
obj=ClassName.newInstance();
我需要的是创建对象,因为用户指定了它的名称,就好像他说对象必须命名为'x'而不是'obj'
答案 0 :(得分:5)
对象没有名称。变量有。但是你无法动态创建变量。如果要将对象与名称关联,请使用Map<String, Object>
:
Map<String, Object> objectsByName = new HashMap<String, Object>();
...
objectsByName.put("Joe", obj);
...
Object objectNamedJoe = objectsByName.get("Joe");
答案 1 :(得分:3)
您无法重命名变量名,因为这是一个编译时进程,用户输入是运行时