一、Java通过反射可以获取方法的参数名称吗?
不能!!!
二、测试示例代码:
import java.lang.reflect.Method; class T { public void print(String username) { System.out.println(username); } } public class Test { public static void main(String[] args) { T t = new T(); t.print("zhangsan"); try { Class c = Class.forName("T"); Method[] ms = c.getDeclaredMethods(); for (Method m : ms) { System.out.println("Method Name: " + m.getName()); System.out.println("Method Return Type: " + m.getGenericReturnType()); System.out.println("Method Parameter Types: " + m.getGenericParameterTypes()); } } catch (ClassNotFoundException e) { e.printStackTrace(); } } }运行结果:
zhangsan
Method Name: print
Method Return Type: void
Method Parameter Types: [Ljava.lang.Class;@1fb8ee3
三、解析
Java通过反射可以取得方法的名称、返回值类型、方法参数类型,但是无法通过反射取得方法参数名称的。
Method类没有提供获取方法参数名称的方法或JDK没有实现该功能。
所以一定要注意啦。
原文地址:http://blog.csdn.net/javawangbaofeng/article/details/43764815