Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.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_Object - Fatal编程技术网

Java 如何在运行时创建变量名?

Java 如何在运行时创建变量名?,java,object,Java,Object,我无法在运行时创建对象的名称。我的声明是: Map<String,String> objectName+""+lineNumber = new HashMap<String,String>(); Map objectName+“”+lineNumber=newhashmap(); 它给了我编译时间错误。我想在运行时根据行号创建HashMap对象。拥有动态对象名是没有用的 首先,不可能给引用一个动态名称。更大的问题是你为什么要这么做? 如果只是为了学习和做实验,我建议

我无法在运行时创建对象的名称。我的声明是:

Map<String,String>  objectName+""+lineNumber = new HashMap<String,String>();
Map objectName+“”+lineNumber=newhashmap();

它给了我编译时间错误。我想在运行时根据行号创建
HashMap
对象。

拥有动态对象名是没有用的

首先,不可能给引用一个动态名称。更大的问题是你为什么要这么做?

如果只是为了学习和做实验,我建议你应该做适当的练习


但是,如果你想达到一些项目的要求,请。解释要求。还有其他方法可以实现这一点。

您不能直接在Java中实现这一点(没有主要技巧)

您可以(也可能应该)做什么:

将地图放入另一个以“变量”名称为键的地图中

如果你真的想这样做,你必须做代码生成。同样,您有多个选项:

  • 生成Java源代码并编译它

  • 动态生成Java字节码。你可能想看看这个列表:对于可用的库


    • Java不是一种解释语言,而是一种编译语言。因此编译器不知道如何处理这个问题。这样的事情在脚本语言中可能是有意义的

      如果您需要一个“变量”的自定义名称,下面这样的构造可能有意义:

      Map<String,Map<String,String>> varMap = new HashMap<String,Map<String,String>>();
      varMap.put(objectName+" "+lineNumber, new HashMap<String, String>());
      
      Map varMap=newhashmap();
      put(objectName+“”+行号,new HashMap());
      
      你是怎么做到的?向我们展示您的代码您可以创建一个数组。我认为你想要达到的目标是不可能的!这是不可能的。你能解释一下你的问题的背景吗?你想通过这样做达到什么目的?此外,对象没有名称。变量有名称。@Jesper:在生成java源代码时可能有,但不知道用户在做什么。@Nandkumar是的,推测很有趣。但是信息是有用的,在这里,它必须来自OP。