java反射中getDeclaredMethods和getMethods的区别
来源:互联网 发布:烽火路由器mac地址过滤 编辑:程序博客网 时间:2024/05/07 08:42
getMethods()
返回一个包含某些 Method 对象的数组,这些对象反映此 Class 对象所表示的类或接口(包括那些由该类或接口声明的以及从超类和超接口继承的那些的类或接口)的公共 member 方法。
返回数组中的元素没有排序,也没有任何特定的顺序。
package staticMethodReflect;import java.lang.reflect.Method; class ForMethod{ //声明静态方法 public static void sayHello(String name){ System. out.println( "你好" +name +"!!!" ); } public String generateNum( Integer max, Integer min){ return (Math.random()*( max- min)+ min)+ ""; } } public class method { public static void main(String[] args){//创建ForMethod类对象 ForMethod fm = new ForMethod(); //获取ForMethod类对象对用的Class对象 Class<?> fmc = fm.getClass(); //获取可以访问的对象的对应的Method数组 Method[] md = fmc.getMethods(); for(int i=0;i<md.length;i++){ System.out.println(md[i].getName()); }} }
第一运行结果: 第二次运行:
可以看出两次的运行结果顺序是不一样的
getDeclaredMethods()
返回 Method 对象的一个数组,这些对象反映此 Class 对象表示的类或接口声明的所有方法,包括公共、保护、默认(包)访问和私有方法,但不包括继承的方法。
返回数组中的元素没有排序,也没有任何特定的顺序。
package staticMethodReflect;import java.lang.reflect.Method; class ForMethod{ //声明静态方法 public static void sayHello(String name){ System. out.println( "你好" +name +"!!!" ); } public String generateNum( Integer max, Integer min){ return (Math.random()*( max- min)+ min)+ ""; } } public class method { public static void main(String[] args){//创建ForMethod类对象 ForMethod fm = new ForMethod(); //获取ForMethod类对象对用的Class对象 Class<?> fmc = fm.getClass(); //获取可以访问的对象的对应的Method数组 Method[] md = fmc.getDeclaredMethods(); for(int i=0;i<md.length;i++){ System.out.println(md[i].getName()); }}
}
可以看出只打印了本类的方法,父类的都没有打印。
反射中两个方法中最需要注意的是
返回数组中的元素没有排序,也没有任何特定的顺序!每次运行的结果顺序可能是不一样的。
有兴趣可以看一下这篇博文中,因为没有注意顺序而引发的问题
java反射机制学习总结
0 0
- java反射中getDeclaredMethods和getMethods的区别
- java反射中getDeclaredMethods和getMethods的区别
- 反射中getMethods 与 getDeclaredMethods 的区别
- 反射中getMethods 与 getDeclaredMethods 的区别
- getMethods和getDeclaredMethods的区别
- 试用Java中的反射reflect之getDeclaredMethods和getMethods
- Java中的反射reflect之getDeclaredMethods和getMethods
- 关于getDeclaredMethods与getMethods的的区别
- getMethods getDeclaredMethods区别
- java 反射机制 之 getMethods获取所有公有方法 和 getDeclaredMethods 获取本类所有方法
- 反射之getMethods()与getDeclaredMethods()
- 反射中getMethods和getDelcaredMethod区别
- java 反射 getDeclaredMethods 和 getMehtods
- c#反射中GetMethods()和GetCustomAttributes()方法
- getFields()与getDeclaredFields()区别;getMethods()与getDeclaredMethods()区别
- getDeclaredFields,getFields,getDeclaredMethods,getMethods实例测试!
- java中new和反射的区别
- [JAVA]反射机制按顺序获取getDeclaredFields()/getDeclaredMethods()
- js兼容性解决及判断过程中的注意事项
- whoosh2
- eclipse提示the user operation is waiting的解决方法
- boost bind使用指南
- ios开发之NSPathUtilities
- java反射中getDeclaredMethods和getMethods的区别
- Caffe中权值初始化方法
- [李景山php] 深入理解PHP内核[读书笔记]--第二章:用户代码执行--opcode处理函数查找
- 3.2 JS 变量提升&&函数参数
- 563. Binary Tree Tilt
- Batch Normalization梯度反向传播推导
- 2017-05-09 总结
- Android N 多窗口的设计
- 服务的基本用法-1