java反射獲取引數名,idea如何開啟-parameters
阿新 • • 發佈:2019-01-25
在8以前的jdk版本的時候,我們利用反射只能獲取到引數型別,然後引數名字都是利用arg0,arg1,arg2......所以在使用一些反射程式設計方面上不是很方便,jdk8開始開闢了這項function,但是我們正常情況下使用jvm不會預設保留引數名字,因為這個可能導致class檔案過大或其他問題,所以我們如果需要可以自行開啟,下面說下idea怎麼開啟parameters
1.File->Settings->Build,Execution,Deployment->Compiler->Java Compiler
2在 Additional command line parameters: 後面填上 -parameters,如下圖
3 填好後,再將專案重新build一下,如下圖
ok了
下面是一段測試程式碼,大家可以看看
import java.lang.reflect.Method; import java.lang.reflect.Parameter; public class Test { public void createUser(String name, int age, int version) { } public static void main(String[] args) throws Exception { for (Method m : Test.class.getMethods()) { System.out.println("--------------------"); System.out.println(" method: " + m.getName()); System.out.println(" return: " + m.getReturnType().getName()); for (Parameter p : m.getParameters()) { System.out.println("parameter:" + p.getType().getName() + ", " + p.getName()); } } } }