JAVA 通过反射获取方法参数时出现参数名为null情况
Parameter[] parameters = method.getParameters();
Arrays.stream(parameters).forEach(parameter -> { System.err.println(parameter.getName()); });
输出:
arg0
arg1
因为获取到的方法参数名称为空 所以返回的就是arg0 arg1
解决方案
需通过javac编译时 添加-paramster参数编译之后才能获取的实际的参数名称
1. 可通过设置 idea settings 里面的 java Compiler Additional command line parameters:
-parameters
2. 可通过maven打包方式 进行设置
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> <compilerArgs> <arg>-parameters</arg> </compilerArgs> </configuration> </plugin> </plugins> </build>
核心:
<compilerArgs> <arg>-parameters</arg> </compilerArgs>