0

我的问题是在创建对象时动态命名对象,并且名称来自用户的输入。

以下是我的代码,我可以在其中动态创建一个对象,但我必须在此之前专门命名它,例如在本例中为 'obj'

private Class ClassName=null;
private Object obj=null;

ClassName=Class.forName(token[2]);
obj=ClassName.newInstance();

我所需要的只是创建对象,因为用户指定了它的名称,就像他说对象必须命名为“x”而不是“obj”

4

2 回答 2

5

对象没有名称。变量有。但是您不能动态创建变量。如果要将对象与名称相关联,请使用Map<String, Object>

Map<String, Object> objectsByName = new HashMap<String, Object>();
...
objectsByName.put("Joe", obj);
...
Object objectNamedJoe = objectsByName.get("Joe");
于 2013-03-03T16:25:55.673 回答
3

您不能重命名变量名,因为这是一个编译时过程,用户输入是运行时

于 2013-03-03T16:25:53.030 回答