Java 从文本文件到代码的语句

Java 从文本文件到代码的语句,java,Java,我想知道是否有可能将条件语句从文本文件直接转换为代码。 例如,如果在文本文件中我有: if(a.getId()==1){System.out.println("YES");} 是否可以直接将其调用到程序中,例如: for(Node a : nodes){ >>> The statement from file <<< } 用于(节点a:节点){ >>>文件中的语句不是真的。Java是编译的,不是解释的。我见过生成完整Java类然后将它们编译成可运行代码的

我想知道是否有可能将条件语句从文本文件直接转换为代码。 例如,如果在文本文件中我有:

if(a.getId()==1){System.out.println("YES");}
是否可以直接将其调用到程序中,例如:

for(Node a : nodes){
 >>> The statement from file <<<
}
用于(节点a:节点){

>>>文件中的语句不是真的。Java是编译的,不是解释的。我见过生成完整Java类然后将它们编译成可运行代码的模板引擎,但它很快就会变得非常复杂。

最简单的选择是使用脚本引擎。或者您可以使用 这是直截了当的。下面的例子

Binding binding = new Binding();
GroovyShell gShell = new GroovyShell(binding);
Object result= shell.evaluate("int a = 10; a = a + 5; return a");

Java是一种编译语言。你不能插入任意一段代码,让它在方法的完整上下文中执行,并使用循环变量的引用。虽然有一些严重的限制,但它非常复杂。我知道一种间接执行的方法,可以生成另一个进程来运行这段代码并在一个新的JVM中执行-它需要使用for循环和文件中的语句创建一个临时文件,编译该临时文件,并使用进程运行它。这就是您要寻找的(相当间接的方式,几乎不影响主线程代码)这就像编写编译器、解析代码和convert@dasblinkenlight-谢谢你的简单但信息丰富的解释。:@Bucco-谢谢你的建议,这主要是针对我的一项作业,涉及决策树并从中提取规则,因此我认为它不完全在作业范围内,但谢谢你我非常感谢你提供的信息。