我正在尝试运行一个方法,该方法接受一个字符串并使用该字符串作为对象的变量来创建对象:
public void createObj(String objName){
Obj objName = new Obj();
}
这有可能吗?如果是这样,我如何才能做到这一点呢?
发布于 2013-03-24 23:55:55
在Java中,不能使用表达式来命名变量。我认为,您能得到的最接近的方法是填充一个可用于按名称查找Obj
实例的Map
。
public void createObj(String objName, Map<String, Obj> symbolTable){
symbolTable.put(objName, new Obj());
}
发布于 2013-03-24 23:56:01
不,这不可能。使用不同的名称声明所有局部变量。
定义类及其成员,然后将其编译为字节码,因此不能在运行时动态修改这些字节码。
public void createObj(String objName){
Obj objectName = new Obj();
}
发布于 2013-03-24 23:56:27
简而言之,不,这是做不到的。您不能在运行时创建命名局部变量。
如果希望将名称与对象相关联,则可以使用Map
。
https://stackoverflow.com/questions/15600611
复制相似问题