我无法在运行时创建对象的名称。我的声明是:
Map<String,String> objectName+""+lineNumber = new HashMap<String,String>();
它给了我编译时错误。我想HashMap
根据行号在运行时创建对象。
Java 不是一种解释型语言,而是一种编译型语言。所以编译器不知道如何处理这个。这样的事情在脚本语言中可能是有意义的。
如果您需要一个“变量”的自定义名称,那么类似以下的构造可能是有意义的:
Map<String,Map<String,String>> varMap = new HashMap<String,Map<String,String>>();
varMap.put(objectName+" "+lineNumber, new HashMap<String, String>());
您不能直接在 Java 中执行此操作(没有主要技巧)
您可以(并且可能应该)做什么:
将您的地图放在另一个以“变量”名称为键的地图中。
如果你真的想这样做,你必须进行代码生成。为此,您有多种选择:
生成Java源代码并编译
即时生成 Java 字节码。你可能想看看这个列表:http: //java-source.net/open-source/bytecode-libraries可用的库。
拥有动态对象名称是没有用的。
起初,不可能给引用一个动态名称。更大的问题是你为什么要这样做?
如果只是为了学习和做实验,我建议你应该遵循适当的练习。
但是,如果您正在尝试实现某些项目要求,请。说明要求。将有一些其他的方法来实现这一点。