spel表达式解析

来源:互联网 发布:cms网站 编辑:程序博客网 时间:2024/06/18 08:23


public interface Expression {    /**     * 根据表达式串、参数解析表达式并返回指定类型     *      * @param T 返回类型     * @param expr 表达式串     * @param args 参数列表     * @return T 返回对象     */    public <T> T eval(Class<T> T, String expr, Map<String, Object> args);}

public class SpelExpression implements Expression {    ExpressionParser parser = new SpelExpressionParser();    public <T> T eval(Class<T> T, String expr, Map<String, Object> args) {        EvaluationContext context = new StandardEvaluationContext();        for (Entry<String, Object> entry : args.entrySet()) {            context.setVariable(entry.getKey(), entry.getValue());        }        return parser.parseExpression(expr).getValue(context, T);    }    //    public static void main(String[] args) {    //        Expression e = new SpelExpression();    //        String expr = "#a > #b ? '11111111' : '2222222222'";    //        Map<String, Object> params = new HashMap<String, Object>();    //        params.put("a", 34);    //        params.put("b", 35);    //        System.out.println(e.eval(String.class, expr, params));    //    }}


0 0
原创粉丝点击