1. 程式人生 > >java java.lang.reflect.Parameter .getName() 取method的引數變數名(Obtaining Names of Method Parameters)

java java.lang.reflect.Parameter .getName() 取method的引數變數名(Obtaining Names of Method Parameters)

       根據 oracle 官方解釋(https://docs.oracle.com/javase/tutorial/reflect/member/methodparameterreflection.html) , 編譯器為了壓縮 .class 大小,壓縮了引數名,預設用 argN, N代表方法引數列表下標,通過 java.lang.reflect.Parameter .getName() 獲取到的引數名如 arg0arg1arg2 etc。

    如果要在保持原始變數名:在 javac 命令後面加上 -parameters 引數即可,如果是用 maven 編譯,可以這樣寫


<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.7.0</version>
            <configuration>
                <compilerArgument>-parameters</compilerArgument>
                <parameters>true</parameters>
                <testCompilerArgument>-parameters</testCompilerArgument>
                <source>${java.version}</source>
                <target>${java.version}</target>
            </configuration>
        </plugin>
    </plugins>
</build>