学习 Janino(二):Expression Evaluator

Expression Evaluator 用于动态执行 Java 表达式。

满百包邮,当 amount 值小于 100 块邮费 10 块,当 amount 值大于等于 100 块免邮:

IExpressionEvaluator ee = CompilerFactoryFactory.getDefaultCompilerFactory().newExpressionEvaluator(); // ①  
ee.setParameters(new String[]{"amount"}, new Class[]{double.class}); // ②  
ee.setExpressionType(double.class); // ③  
ee.cook("amount >= 100.0 ? 0.0 : 10.0"); // ④  
ee.evaluate(new Object[]{amount} // ⑤  

① 使用工厂模式创建默认的 Expression Evaluator 实例;

② 设置参数名和参数类型;

③ 设置返回值类型;

④ 编译 Java 表达式;

⑤ 执行 Java 表达式。