如何动态评估以下条件。抛出错误。
List<DummyTwo> list=new ArrayList<DummyTwo>();
list.add(new DummyTwo(true));
list.add(new DummyTwo(false));
list.add(new DummyTwo(false));
list.add(new DummyTwo(true));
String condition="((list.get(0).isResult() || list.get(1).isResult()) && list.get(2).isResult())";
ExpressionParser parser=new SpelExpressionParser();
Expression e=parser.parseExpression(condition);
System.out.println(e.getValue());
我需要以这种方式使用条件,因为条件是动态构建的。
看起来我可以使用ScriptManager实现。请建议这是否是最好的方法。
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine jsEngine = mgr.getEngineByName("JavaScript");
jsEngine.put("list", list);
System.out.println(jsEngine.eval(condition));