1

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

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

这甚至可能吗?如果是这样,我该如何完成它?

4

4 回答 4

0

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

public void createObj(String objName, Map<String, Obj> symbolTable){
    symbolTable.put(objName, new Obj());
}
于 2013-03-24T15:55:54.710 回答
0

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

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

public void createObj(String objName){
    Obj objectName = new Obj();
}
于 2013-03-24T15:56:00.733 回答
0

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

如果要将名称与对象相关联,可以使用Map<String,Object>.

于 2013-03-24T15:56:26.580 回答
0

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

于 2013-03-24T16:26:02.130 回答