java编译方法参数(-parameters)名为arg0问题
javac编译代码参数-parameters用于生成元数据以用于方法参数的反射,通过此参数可以获取方法的真实参数名,否则获取到的就是arg0、arg1;在用开发工具和打包工具时的设置还一样,下面是常见的几种场景介绍。......
·
javac编译代码参数-parameters用于生成元数据以用于方法参数的反射,通过此参数可以获取方法的真实参数名,否则获取到的就是arg0、arg1;在用开发工具和打包工具时的设置还一样,下面是常见的几种场景介绍。
一、idea设置编译时获取方法参数名方案
Preferences->Build,Execution,Deployment->Compiler->Java Compiler
二、maven插件编译时设置方案
版本在3.6.2之前设置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<compilerArgs>-parameters</compilerArgs>
</configuration>
</plugin>
版本在3.6.2(包含)以后设置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<parameters>true</parameters>
</configuration>
</plugin>
三、springboot项目继承自spring-boot-starter-parent,默认已开启,无需依赖引入
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<parameters>true</parameters>
</configuration>
</plugin>
如果项目中又添加了maven-compiler-plugin配置,并且设置了parameters配置,则以项目中的为准,如果未设置parameters属性,如果springboot自带设置方式跟当前版本一致,则没问题,否则会出现参数名为arg0问题。
更多推荐
所有评论(0)