这是JDK 8中引入的javac的功能。您需要包括
-parametersjavac命令行选项才能将其激活。然后,您将能够获得像这样的参数名称:
String name = String.class.getMethod("substring", int.class).getParameters()[0].getName()System.out.println(name);从Spring文档3.3 Java
8(以及6和7)开始
您还可以使用Java 8的参数名称发现(基于-parameters编译器标志)来替代启用了调试信息的代码。
如ParameterNameDiscoverer类的javadoc中所指定:
参数名称发现并不总是可能的,但是可以尝试各种策略,例如寻找可能在编译时发出的调试信息,以及寻找可选地带有AspectJ注释方法的argname注释值。
这是Spring项目Java
8参数名称发现中有关方法和构造函数的相关JIRA项目的链接
JDK增强建议JEP 118:在运行时访问参数名称



