Java:使用String作为源代码的一部分

时间:2014-03-21 11:48:46

标签: java boolean evaluate

今天我有一个问题,我多年来一直在思考 考虑您在Java中进行以下评估:

new EvaluationListener(){  
    public boolean evaluate(boolean[] b){
        return b[0] || b[1];
    }
}

我在我的程序中使用此代码来评估b [0]和b [1]的不同布尔值的项,但这在这里根本不重要。
目前我正在将评估编写到源代码中,让程序运行并在命令行中查看结果。
现在我想知道如何将评估实现到命令行中。我希望能够在命令行中输入评估术语,使用BufferedReader等读取它,而不是将其写入源代码。

有没有办法这样做?我认为可以使用某种变量别名,如$ b0 $。但是,如何将逻辑OR和AND和NOT传递给程序?

感谢您的回答

1 个答案:

答案 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