67,514
社区成员
发帖
与我相关
我的任务
分享
public static void main(String[] args) throws Exception {
String expression = "a>b||b>c&&a<d";
Map<String, Object> param = new HashMap<String, Object>();
param.put("a", 1);
param.put("b", 123);
param.put("c", 100);
param.put("d", 9999);
System.out.println(eval(expression, param));
}
public static boolean eval(String expression, Map<String, Object> param) throws Exception {
ScriptEngine engine = new ScriptEngineManager()
.getEngineByName("javascript");
ScriptContext ctx = new SimpleScriptContext();
for (Entry<String, Object> entry : param.entrySet()) {
ctx.setAttribute(entry.getKey(), entry.getValue(), ScriptContext.ENGINE_SCOPE);
}
return (Boolean)engine.eval(expression, ctx);
}