java - 在 Java 运行时评估代码

标签 java string if-statement

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/

相关文章:

javascript - 如果选择选项中的值低于第二个选择选项中的值,则更改选项

r - 使用 ifelse 语句时如何将 N/A 保留为 N/A?

java - 'java.util.concurrent.ExecutionException : org. apache.catalina.LifecycleException:'

Java字符串输入输出字符串

java - 虽然循环保证返回一个值,但应该用什么替换 return 语句?

java - 如何从字符串中删除一行?

java - 在二维数组中生成随机数

java - 什么时候在编译时或运行时在java中创建字符串池?

java - 如果这个变量可以是三个不同类之一,我该如何声明它?

java - 如何在Spring Boot测试中打印@sql注释中脚本文件的完整路径