Java不是动态编译的语言,因此如果您想要回避这样的表达式,可以使用Java中的Javascript.
试试这段代码:
String boundaries = "(x > 750) & (x < 900)"; ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("javascript"); engine.eval("var x = 810;"); // Define x here engine.eval("var bln = false;") engine.eval("if (" + boundaries + ") bln = true; ") if((boolean)engine.eval(bln)) { // Do stuff }
希望这可以帮助.参考:Oracle:Java脚本程序员指南