private String boundaries = "(x > 750) & (x < 900)";
if (boundaries) {
//Do stuff
}
Run Code Online (Sandbox Code Playgroud)
我希望能够在if子句中使用字符串作为变量,然后独立更改字符串,而无需编辑代码本身.示例的想法不起作用,我想知道它是否有错误或其他方式不使用字符串.
谢谢.
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脚本程序员指南