Possible Duplicate:
Is there a java equivalent of the python eval function?
有一个字符串,类似于 String str = "if a[0]=1 & a[1]=2"
。如何在真正的 IF THEN 表达式中使用该字符串?例如:
for (Integer[] a : myNumbers) {
if a[0]=1 & a[1]=2 { // Here I'd like to use the expression from str
//...
}
}
最佳答案
Java 不是一种支持动态计算的脚本语言(尽管它支持脚本执行)。我会要求您检查一下您尝试做的事情是否在 Java 中以正确的方式完成。
有两种常见方法可以解决此问题,如下所示。然而,当涉及到应用程序的运行时时,它们会对性能产生重大影响。
<小时/>脚本执行
您可以启动 ScriptEngine,构建 ScriptContext,用 Javascript 或其他语言执行片段,然后读取评估结果。
<小时/>解析
您可以构建一个词法解析器来分析字符串并将其转换为您想要执行的操作。在 Java 中,我建议您查看 JFlex。
关于java - 在 Java 运行时评估代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8733807/