当前位置:   article > 正文

获取JAVA方法参数名称的几种方式_java 获取参数名称

java 获取参数名称

1.使用JDK1.8的Parameter.getName()方法。

  1. public String[] getParameterNames(Method method) {
  2. Parameter[] parameters = method.getParameters();
  3. String[] parameterNames = new String[parameters.length];
  4. for (int i = 0; i < parameters.length; i++) {
  5. Parameter param = parameters[i];
  6. if (!param.isNamePresent()) {
  7. return null;
  8. }
  9. parameterNames[i] = param.getName();
  10. }
  11. return parameterNames;
  12. }

2.如果是JDK1.8以下的可以使用本地变量表的方式即 ASM library 字节码技术分析class文件,经过测试这种获取参数名称的方式有些消耗性能,会慢一点。可参考spring的org.springframework.core.LocalVariableTableParameterNameDiscoverer实现该功能。

使用spring的org.springframework.core.DefaultParameterNameDiscoverer这个类默认会去JDK中找如果是JDK1.8自动使用1.8的功能,没有的话使用字节码技术找。

  1. Method method = null;
  2. try {
  3. method = ExpressionParser.class.getMethod("parseParams", String.class, Object[].class);
  4. } catch (NoSuchMethodException | SecurityException e) {
  5. e.printStackTrace();
  6. }
  7. //
  8. MethodParameter param = new MethodParameter(method, 1);
  9. param.initParameterNameDiscovery(new DefaultParameterNameDiscoverer());
  10. System.out.println(param.getParameterName());

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/309911?site
推荐阅读
相关标签
  

闽ICP备14008679号