介绍:
定义:Aviator是一种开源的Java表达式求值器。
我将Aviator定位在Groovy这样全功能的脚本和IKExpression这样的简易的表达式求值之间的东西,如果你不希望带上Groovy那么庞大的jar却只用上一点点的功能,如果你希望功能和性能上比IKExpression好那么一些,那么也许你可以考虑Aviator。
Aviator的设计思路跟利用GroovyObject的求值是一样,通过编译并动态生成字节码的方式将表达式编译成一个类,然后反射执行这个类,因此会在效率上比纯解释执行的IKExpression好一些。
Aviator 2.2 API: http://www.jarvana.com/jarvana/view/com/googlecode/aviator/aviator/2.2.0/aviator-2.2.0-javadoc.jar!/index.html
具体的可以参考文章:http://www.blogjava.net/killme2008/archive/2010/06/29/324758.html
简单案例:
public static void main(String args[]) {
try {
Expression exception = AviatorEvaluator.compile("a>b&&b<c?10:-10");
Map map = new HashMap();
map.put("a", 0);
map.put("b", 3);
map.put("c", 8);
System.out.println("result" + exception.execute(map).toString());
} catch (Exception e) {
e.toString();
}