`
jiaoronggui
  • 浏览: 1303952 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
博客专栏
B7c2eb31-a8ea-3973-a517-d00141f39b89
项目管理软件-redmin...
浏览量:115272
4a63e153-250f-30f6-a051-97cfc67cb3d3
IT职业规划
浏览量:197740
社区版块
存档分类
最新评论

JSEL2.0官网提供的用例,竟然运行不通过

    博客分类:
  • Java
J# 
阅读更多
import java.util.HashMap;
import org.xidea.el.Expression;
import org.xidea.el.ExpressionFactory;

public class JSELTest {
    private ExpressionFactory factory = ExpressionFactory.getInstance();

    /**
     * 表达式函数(与对象绑定时,可以不申明为 static)
     */
    public int testAdd(int i,int j){
        return i+j;
    }
    public void testExpression(){
        Expression el = factory.create("12 * 60 + 100");
        Object result1 = el.evaluate();
        System.out.println("result1");
        System.out.println(result1);
    }
    public void testMapContext(){
        Expression el = factory.create("var1 +2 * var2 + obj.testAdd(1,2)");

        Object result21 = el.evaluate("var1",123,
                                      "var2",456,
                                      "obj",this);
        System.out.println("result21:");
        System.out.println(result21);
      
        //通过方式传递变量
        HashMap<String, Object> context = new HashMap<String, Object>();
        context.put("var1",111);
        context.put("var2",222);
        context.put("obj",this); //设置对象

        Object result22 = el.evaluate(context);
        System.out.println("result22:");
        System.out.println(result22);
    }
    public void testFunction(){
        Expression el = factory.create("100 + testAdd(1,2)");
        Object result3 = el.evaluate(this);
        System.out.println("result3");
        System.out.println(result3);
    }
    public static void main(String[] args){
        JSELTest test = new JSELTest();
        test.testExpression();
        test.testMapContext();
        test.testFunction();
    }
}



运行结果:
result1
820
result21:
var1NaNnull
result22:
558
result3
103

这段代码好像运行有问题
        Object result21 = el.evaluate("var1",123,
                                      "var2",456,
                                      "obj",this);
        System.out.println("result21:");
        System.out.println(result21);

不知道是环境错了,还是官网WIKI提供的代码有问题,学习中。。。。
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics