zoukankan      html  css  js  c++  java
  • Java获取方法参数名、Spring SpEL解析

    @Test
    public void testParse() {
        //表达式解析
        ExpressionParser expressionParser = new SpelExpressionParser();
        Expression expression = expressionParser.parseExpression("#itemId");
        EvaluationContext context = new StandardEvaluationContext();
        context.setVariable("itemId", "100");
        log.info("[SpELTest - testParse ] {} ", expression.getValue(context));
        //获取方法参数名
        LocalVariableTableParameterNameDiscoverer discoverer = new LocalVariableTableParameterNameDiscoverer();
        for (Method method : new StringUtils().getClass().getDeclaredMethods()) {
            for (String s : discoverer.getParameterNames(method)) {
                System.out.print("parm: "+s+"  ");
            }
            System.out.println("methodName:  "+method.getName());
        }
    }
    

    org.springframework.core.LocalVariableTableParameterNameDiscoverer也是Spring解析Controller方法参数使用的类,原理就是读取class字节码,解析其中中的LocalVariableTable,得到方法的参数名称。
    注:如果是动态代理出来的类,是拿不到方法参数名的

  • 相关阅读:
    CSUOJ 1081 集训队分组
    HDU 1865 More is Better
    HDU 1325 Is It A Tree?
    HDU 1272 小希的迷宫
    CSUOJ 1217 奇数个的那个数
    CSUOJ 1010 Water Drinking
    CSUOJ 1162 病毒
    CodeForces 295B
    CodeForces 20C
    SPOJ MULTQ3
  • 原文地址:https://www.cnblogs.com/yissheng/p/5630653.html
Copyright © 2011-2022 走看看