java通過反射獲取方法的引數名,Idea/Eclipse/Maven的配置
阿新 • • 發佈:2019-02-11
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專案中開啟的方法很實用,我就是這個問題,找了好久最後解決了,哈哈。。。