在Java中运行时创建变量

时间:2010-11-10 01:30:49

标签: java variables integer

在我的代码中,我有一个非常大的循环,我需要在每次迭代结束时创建一个新变量(整数)。这可能吗?我读到了一个ScriptEngineManager类,但我不确定这是否能够提供帮助。我想我可以创建一组等于0的整数,但我不确定我需要创建一个新变量多少次(它取决于循环的条件)。希望这是有道理的。

4 个答案:

答案 0 :(得分:3)

使用数组。在Javascript中,在循环前放置var results = []并使用results.push(value)附加结果。在Java中,您需要使用ArrayList。 (顺便说一下,这些是非常不同的语言。)

答案 1 :(得分:0)

  

希望这是有道理的。

不幸的是,它没有。

在Java中,动态创建变量是没有意义的。这是非常困难的,一旦你完成它,它们就非常难以使用。 (相比之下,在Javascript中很容易做到......)

然而,这只是意味着你需要以不同的方式做你想做的事情。例如,以下内容在循环中进行计算,然后将结果保存在(现有)ArrayList变量中:

    List<Integer> results = ArrayList<Integer>();
    while (...) {
        // Do computation ...
        int result = ...
        results.add(result);
    }
    // Now we have all of the results in 'results'

或者,如果您想将每个结果绑定到一个不同的名称,您可以这样做:

    Map<String, Integer> results = HashMap<String, Integer>();
    while (...) {
        // Do computation ...
        String name = ...
        int result = ...
        results.put(name, result);
    }

答案 2 :(得分:0)

以下是我实施并帮助我轻松修复解决方案的方式,没有太多障碍。

//创建数组列表

List accountList = new ArrayList(); 




for(int k=0;k < counter;k++){
        accountList.add(k, (String)flowCtx.getValueAt("transitId"+m));
}

迭代循环并使用索引将对象添加到arraylist中。

//在索引的帮助下在运行时检索对象

String a = accountList.get(i));

答案 3 :(得分:0)

否,在运行时无法在Java中声明变量。但是java提供了java.util.map,可以像下面的示例中一样使用它。我们可以假设键是变量名。

Map<String, Object> declareVariableRuntime= new HashMap<String, Object>(); declareVariableRuntime.put("variableName", new Object());