Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中通过方法动态设置对象变量_Java - Fatal编程技术网

如何在Java中通过方法动态设置对象变量

如何在Java中通过方法动态设置对象变量,java,Java,我正在尝试运行一个方法,该方法接收字符串并使用字符串作为对象的变量创建对象: public void createObj(String objName){ Obj objName = new Obj(); } 这可能吗?如果是这样,我该如何实现呢?在Java中不能使用表达式来命名变量。我认为,最接近的方法是填充一个可用于按名称查找Obj实例的 public void createObj(String objName, Map<String, Obj> symbolTable

我正在尝试运行一个方法,该方法接收字符串并使用字符串作为对象的变量创建对象:

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

这可能吗?如果是这样,我该如何实现呢?

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

public void createObj(String objName, Map<String, Obj> symbolTable){
    symbolTable.put(objName, new Obj());
}
public void createObj(字符串objName,映射symbolTable){
symbolTable.put(objName,new Obj());
}

不,这是不可能的。声明所有具有不同名称的局部变量

定义一个类及其成员,然后将其编译为字节码,因此不能在运行时动态修改它们

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

简言之,不,这是不可能做到的。无法在运行时创建命名的局部变量


如果要将名称与对象关联,可以使用。

不,因为一个简单的原因,您不能这样做。您不能有两个同名的局部变量,因为编译器无法区分。

什么?你为什么要这么做?