试用Java中的反射reflect之getDeclaredMethods和getMethods
2014-05-24 16:36
411 查看
http://www.cnblogs.com/jianjianjiao/articles/1853409.html
目的:根据类名、方法名以及方法对应的参数,获取方法,并实现方法的调用
1、getDeclaredMethods和getMethods的区别
由此可见,getDeclaredMethod*()获取的是类自身声明的所有方法,包含public、protected和private方法。getMethod*()获取的是类的所有共有方法,这就包括自身的所有public方法,和从基类继承的、从接口实现的所有public方法。
实例一:getDeclaredMethod和getMethod的区别
Say.java:
SayTest.java
当使用say方法里的//1语句时,main函数抛出异常,可见使用getMethod时,因为sayHi是保护方法,获取方法sayHi失败
当使用say方法里的//2语句时,可以正常调用
可见,不能用java.lang.Class.getMethod方法获取自身的非public方法,用java.lang.Class.getDeclaredMethod方法可以。
实例二:getDeclaredMethods和getMethods的区别
ReflectionUtils.java
测试类 SayTest.java
输出:
可见,调用getMethods方法输出的是自身的public方法和父类Object的public方法。调用getDeclaredMethods方法输出的是自身的public、protected、private方法。
目的:根据类名、方法名以及方法对应的参数,获取方法,并实现方法的调用
1、getDeclaredMethods和getMethods的区别
Method | getDeclaredMethod(String name, Class... parameterTypes) Returns a Methodobject that reflects the specified declared method of the class or interface represented by this Classobject. |
Method[] | getDeclaredMethods() Returns an array of Methodobjects reflecting all the methods declared by the class or interface represented by this Classobject. |
Method | getMethod(String name, Class... parameterTypes) Returns a Methodobject that reflects the specified public member method of the class or interface represented by this Classobject. |
Method[] | getMethods() Returns an array containing Methodobjects reflecting all thepublic member methods of the class or interface represented by this Classobject, including those declared by the class or interface and those inherited from superclasses and superinterfaces. |
实例一:getDeclaredMethod和getMethod的区别
Say.java:
实例二:getDeclaredMethods和getMethods的区别
ReflectionUtils.java
相关文章推荐
- Java中的反射reflect之getDeclaredMethods和getMethods
- Java,反射的用法,getDeclaredMethods与getMethods 的区别
- java反射中getDeclaredMethods和getMethods的区别
- Java 反射(Reflection) - Class 类 getMethod、getMethods、getDeclaredMethod、getDeclaredMethods四者区别
- java 反射机制 之 getMethods获取所有公有方法 和 getDeclaredMethods 获取本类所有方法
- Java反射getMethods()与getDeclaredMethods()区别
- java反射中getDeclaredMethods和getMethods的区别
- Java反射 : Declared的作用 ( 例如 : getMethods和getDeclaredMethods )
- java反射中getDeclaredMethods和getMethods的区别
- 反射中getMethods 与 getDeclaredMethods 的区别
- 反射中getMethods 与 getDeclaredMethods 的区别
- 反射中getMethods 与 getDeclaredMethods 的区别
- 反射以及 getDeclaredMethods()和getMethods()区别
- java反射之Class.getMethod与getDeclaredMethods()区别
- java中Class.getMethods()和Class.getDeclaredMethods()方法的区别
- [JAVA]反射机制按顺序获取getDeclaredFields()/getDeclaredMethods()
- 反射中getMethods 与 getDeclaredMethods 的区别
- 反射中getMethods 与 getDeclaredMethods 的区别
- 反射中getMethods 与 getDeclaredMethods 的区别
- Java反射 getFields()和getDeclaredFields()的区别