1. 程式人生 > >java通過反射獲取方法的引數名,Idea/Eclipse/Maven的配置

java通過反射獲取方法的引數名,Idea/Eclipse/Maven的配置

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專案中開啟的方法很實用,我就是這個問題,找了好久最後解決了,哈哈。。。