0

如何评估java变量?我有几个字符串 String q1,q2,q3,q4,q5

for(i=1;i1<=5;i++){
//evaluate the value of q1,q2,q3,q4,q5 
system.out.println(q+i); //should print q1,q2,q3,q4,q5 values concurrently
}

请帮我。

4

5 回答 5

7

使用数组:

 String[] q = {q1, q2, q3, q4, q5};
 for (String s : q) 
    System.out.println(s);
于 2012-04-09T18:46:48.107 回答
1

我相信他指的是来自 flash 的 actionscript 和 javascript 的 eval 函数。

有了它,您可以执行以下操作

for (i = 1; i <= 4; i++){
     eval("func" + i + "( )");
}

它将调用 func1()、func2()、func3()、func4()。同样,您可以使用字符串变量来执行此操作。

您不能在 Java 中执行此操作,如果您觉得必须使用 for 循环打印这些单独的变量,那么您最好的选择是Eugene 的答案,即首先将它们放入数组中。

编辑:我正在输入我的答案,并没有注意到拉文德的答案。感谢您的参考。我以前从未使用过 ScriptEngine,因此必须检查一下。

于 2012-04-09T19:48:00.477 回答
0

您可以使用 java 反射来检查类中定义的字段。

例如Class.getField(String)

于 2012-04-09T18:45:37.117 回答
0

看来您正Java试图evalJavaScript.
如果是,那么在 Java 中使用 eval 的答案可能会对您有所帮助。

于 2012-04-09T19:34:42.457 回答
0

此代码无法编译,您尝试打印的内容是变量 q 的值,随着 i 的值递增。没有 q,你也不想要 i 的值。

请改用 Eugene Retunsky 的解决方案。

于 2012-04-09T18:51:06.040 回答