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