JDK8獲取引數名稱(開啟javac -parameters)
import java.lang.reflect.Method;
import java.lang.reflect.Parameter;
/**
* 使用–parameters引數編譯為class檔案後,保留引數名字。
* @author fuhm3
*/
public class TestClass {
public static void main(String[] args) throws ClassNotFoundException {
Class classObject = Class.forName("com.ai.accm.saas.service.interfaces.IStaticResourceForSaasSV");
Method[] methods = classObject.getDeclaredMethods();
for(int i=0;i<methods.length;i++){
final Parameter[] parameters = methods[i].getParameters();
for(final Parameter p : parameters){
System.out.println(p.isNamePresent()+" "+p.getName() );
}
}
System.out.println("-------------end-------------");
}
}
保留引數名這一選項由編譯開關javac -parameters
開啟,則:引數名稱被編譯進了class檔案。
保留引數名這一選項由編譯開關javac -parameters
關閉,則:引數名稱是無意義的org0、org1...
但是,javac -parameters
預設是關閉的,在eclipse中可以在 Preferences -- compiler -- store information about method parameters(usable via reflection) 開啟。