在if语句中使用字符串作为变量子句

use*_*201 4 java

private String boundaries = "(x > 750) & (x < 900)";
if (boundaries) {
//Do stuff
}
Run Code Online (Sandbox Code Playgroud)

我希望能够在if子句中使用字符串作为变量,然后独立更改字符串,而无需编辑代码本身.示例的想法不起作用,我想知道它是否有错误或其他方式不使用字符串.

谢谢.

Ger*_*lik 8

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
      }
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.参考:Oracle:Java脚本程序员指南