java通过反射获取方法的参数名,Idea/Eclipse/Maven的配置
程序员文章站
2022-05-12 16:33:26
...
1,在8以前的jdk版本中,我们利用反射只能获取到参数类型,然后参数名字都是利用arg0,arg1,arg2......要想获得参数名,得加上注解,如下:
public User getUser(@Param("groupid") String groupid, @Param("userid") String userid) {
...
}
2,而jdk8开始开辟了这项function,但是我们正常情况下使用jvm不会默认保留参数名字,因为这个可能导致class文件过大或其他问题,所以我们如果需要可以自行开启。
a)下面说下idea怎么开启parameters。
1)File->Settings->Build,Execution,Deployment->Compiler->Java Compiler
2)在 Additional command line parameters: 后面填上 -parameters,如下图
3)填好后,再将项目重新build一下,Build->Rebuild Project。
b)在Eclipse中开启的方法
Preferences->java->Compiler
下勾选Store information about method parameters
选项。
这样在使用eclipse编译java文件的时候就会将参数名称编译到class文件中。
c)在Maven项目中开启的方法
在pom.xml的编译插件中增加参数配置<arg>-parameters</arg>
。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<compilerArgs>
<arg>-parameters</arg>
</compilerArgs>
</configuration>
</plugin>
ps:maven项目中开启的方法很实用,我就是这个问题,找了好久最后解决了,哈哈。。。
参考:http://www.mamicode.com/info-detail-2162647.html
https://blog.csdn.net/baidu_32492845/article/details/79712141