Spring-core-MethodParameter

MethodParameter这个类用于方法参数的抽象,例如下面这个方法,我们就可以说test方法包含了3个MethodParameter实例,一个是入参aa,一个是入参bb,还有一个是String类型的返回值

public class AController {
	public String test(int aa, String bb){
        return aa + "_" + bb;
    }
}

如果想创建int a对应的MethodParameter,则应该像下面这样写

public static void main(String[] args) throws Exception {
    Method method = AController.class.getMethod("test", int.class, String.class);
    MethodParameter mp = new MethodParameter(method,0);
    // 此处随便设置一个ParameterNameDiscovery,这样getParameterName的时候能得到正确的name
    // 可参考源码,它判断了一下这个discovery是不是null,如果不是null,才通过反射取name
    mp.initParameterNameDiscovery(new DefaultParameterNameDiscoverer());
    System.out.println(mp.getParameterName());
}

本文就到这里,比较简单,主要是阐述MethodParameter这个类它代表的是什么,在spring core的模块中,比较常用,尤其是在spring web中,解析controller参数的时候,更常用了