码迷,mamicode.com
首页 > 编程语言 > 详细

java的反射机制之getDeclaredMethods和getMethods的区别

时间:2018-09-10 13:27:49      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:反射机制   csdn   nbsp   net   tde   img   integer   style   max   

getMethods() 

          返回一个包含某些 Method 对象的数组,这些对象反映此 Class 对象所表示的类或接口(包括那些由该类或接口声明的以及从超类和超接口继承的那些的类或接口)的公共 member 方法。注意: 返回数组中的元素没有排序,也没有任何特定的顺序。

 1 package staticMethodReflect;
 2  
 3 import java.lang.reflect.Method;  
 4   
 5 class ForMethod{  
 6       //声明静态方法  
 7       public static void sayHello(String name){  
 8            System. out.println( "你好" +name +"!!!" );  
 9      }  
10       public String generateNum( Integer max, Integer min){  
11             return (Math.random()*( max- min)+ min)+ "";  
12      }  
13 }  
14 public class method {  
15     
16     public static void main(String[] args){
17         //创建ForMethod类对象  
18         ForMethod fm = new ForMethod();  
19          //获取ForMethod类对象对用的Class对象  
20          Class<?> fmc = fm.getClass();  
21          //获取可以访问的对象的对应的Method数组  
22         Method[] md = fmc.getMethods();  
23         
24         for(int i=0;i<md.length;i++){
25             System.out.println(md[i].getName());
26         }
27     }
28   }

技术分享图片技术分享图片

 

每次运行的结果顺序都不太一样。

getDeclaredMethods() 

        返回 Method 对象的一个数组,这些对象反映此 Class 对象表示的类或接口声明的所有方法,包括公共、保护、默认(包)访问和私有方法,但不包括继承的方法。返回数组中的元素没有排序,也没有任何特定的顺序。

 1 package staticMethodReflect;
 2  
 3 import java.lang.reflect.Method;  
 4   
 5 class ForMethod{  
 6       //声明静态方法  
 7       public static void sayHello(String name){  
 8            System. out.println( "你好" +name +"!!!" );  
 9      }  
10       public String generateNum( Integer max, Integer min){  
11             return (Math.random()*( max- min)+ min)+ "";  
12      }  
13 }  
14 public class method {  
15     
16     public static void main(String[] args){
17         //创建ForMethod类对象  
18         ForMethod fm = new ForMethod();  
19          //获取ForMethod类对象对用的Class对象  
20          Class<?> fmc = fm.getClass();  
21          //获取可以访问的对象的对应的Method数组  
22         Method[] md = fmc.getDeclaredMethods(); 
23         
24         for(int i=0;i<md.length;i++){
25             System.out.println(md[i].getName());
26         }
27     }

技术分享图片

调用getDeclaredMethods只打印了本类的方法,没有打印从父类继承的方法。

本文转自: https://blog.csdn.net/hanxueyu666/article/details/71502143

java的反射机制之getDeclaredMethods和getMethods的区别

标签:反射机制   csdn   nbsp   net   tde   img   integer   style   max   

原文地址:https://www.cnblogs.com/fpqi/p/9618413.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!