如何在Java中

问题描述:

我试图运行发生在一个字符串,并创建使用字符串作为对象的变量对象的方法来动态地设置一个对象变量通过一个方法:如何在Java中

public void createObj(String objName){ 
    Obj objName = new Obj(); 
} 

这甚至可能?如果是这样,我该如何实现它?

+0

什么?你为什么想做这个? – Makoto 2013-03-24 15:55:54

不能使用表达式来在Java中命名变量。我认为最接近的是填充Map<String, Obj>,可用于按名称查找Obj实例。

public void createObj(String objName, Map<String, Obj> symbolTable){ 
    symbolTable.put(objName, new Obj()); 
} 
+0

感谢您的帮助 – user2202767 2013-03-24 16:04:19

没有它不可能。用不同的名称声明所有的局部变量。

甲类及其成员的定义,然后编译成字节代码,所以thse不能在动态在运行时修改。

public void createObj(String objName){ 
    Obj objectName = new Obj(); 
} 

总而言之,不能这样做。您不能在运行时创建一个命名的局部变量。

如果你想将名称与对象相关联,你可以使用一个Map<String,Object>

不,你不能这样做,原因很简单。由于编译器无法区分,因此不能有2个具有相同名称的局部变量。