• jexl2 执行字符串Java代码


    一,引入jar包,

    <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-jexl -->
    <dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-jexl</artifactId>
    <version>2.1.1</version>
    </dependency>

    二:案例:

            //
            JexlContext jc = new MapContext();
            jc.set("a", 1);
            jc.set("b", "0");
            jc.set("ans", new StringBuffer());
            Expression e = new JexlEngine().createExpression("while (a < 10) {a = a + 1; ans.append(a);}");
            e.evaluate(jc);
            System.out.println(jc.get("ans"));
            
            
            Expression expr;
            JexlContext ctxt = new MapContext();
            JexlEngine jexl = new JexlEngine();
            // 表达式
            String exps = "if(c1>c2) {c3=0}";
            expr = jexl.createExpression(exps);
    
            // case 1
            ctxt.set("c1", 1);
            ctxt.set("c2", 2);
            expr.evaluate(ctxt);
            System.out.println((Integer) ctxt.get("c3") == (Integer) (0));
    
            // case 2
            ctxt.set("c1", 2);
            ctxt.set("c2", 1);
            expr.evaluate(ctxt);
            System.out.println((Integer) ctxt.get("c3") == (Integer) (0));
    MapContext 传入和取得变量。
  • 相关阅读:
    redis该怎么用
    cookie和session的比较
    web常见攻击
    请大神指导从大日志文件中统计关键字次数的办法
    apache中 MaxClients 与MaxRequestsPerChild
    如何提高缓存命中率
    CSU-ACM2018暑假集训比赛1
    CodeForces
    CodeForces
    CodeForces
  • 原文地址:https://www.cnblogs.com/zxf330301/p/9595017.html
Copyright © 2020-2023  润新知