java java.lang.reflect.Parameter .getName() 取method的引數變數名(Obtaining Names of Method Parameters)
阿新 • • 發佈:2018-11-05
根據 oracle 官方解釋(https://docs.oracle.com/javase/tutorial/reflect/member/methodparameterreflection.html) , 編譯器為了壓縮 .class 大小,壓縮了引數名,預設用 argN
, N代表方法引數列表下標,通過 java.lang.reflect.Parameter .getName() 獲取到的引數名如 arg0
, arg1
, arg2
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>