前提
注意:此问题发生在jdk1.8 ,jdk1.8以下不适用
jdk中新增-parameters参数,开启此参数可以将编译后的class文件保留原码中的参数名
保留参数名方便反射的时候判断参数,比如Mybatis中mapper中的参数,可以不加@Param显性指定
不加-parameters参数,编译结果:
填加-parameters参数,编译结果:
Idea增加编译参数
设置路径:
win版本
File->Settings->Build,Execution,Deployment->Java Compiler下的Additional command line parameters选项中添加-parameters
Mac版本
IntelliJIDEA->Preference…->Build,Execution,Deployment->Java Compiler下的Additional command line parameters选项中添加-parameters
设置界面:
新版mac版idea没有Preference选项,可以通过如下设置,记得重启
或者在idea 启动的时候设置
设置完毕后如果手动编译不生效,记得菜单或者右键 bulid -> rebulid project
Maven增加编译参数
增加插件
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<!-- 注意以下两项的参数配置 -->
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
<!-- 编译参数写在arg内 -->
<compilerArgs>
<arg>-parameters</arg>
</compilerArgs>
</configuration>
</plugin>
如此编译后即可保留参数名