今天我有一个问题,我多年来一直在思考 考虑您在Java中进行以下评估:
new EvaluationListener(){
public boolean evaluate(boolean[] b){
return b[0] || b[1];
}
}
我在我的程序中使用此代码来评估b [0]和b [1]的不同布尔值的项,但这在这里根本不重要。
目前我正在将评估编写到源代码中,让程序运行并在命令行中查看结果。
现在我想知道如何将评估实现到命令行中。我希望能够在命令行中输入评估术语,使用BufferedReader等读取它,而不是将其写入源代码。
有没有办法这样做?我认为可以使用某种变量别名,如$ b0 $。但是,如何将逻辑OR和AND和NOT传递给程序?
感谢您的回答
答案 0 :(得分:1)
以下是使用Java脚本API进行表达式评估的示例:
ScriptEngineManager scriptEngineManager = new ScriptEngineManager();
ScriptEngine scriptEngine = scriptEngineManager.getEngineByName("ECMAScript");
scriptEngine.put("b1", true);
scriptEngine.put("b2", false);
System.out.println(scriptEngine.eval("b1 || b2"));
System.out.println(scriptEngine.eval("b1 && b2"));
运行时,此代码打印:
true
false