【前面的话】

      在实际项目中学习知识总是最快和最有效的,既能够较好的掌握知识,又能够做出点东西,还是简单的知识总结,最近一直在总结笔记,写的东西还是比较水,希望慢慢可以写出一些干货。

      学习过程中的小知识点总结,基础文章,选择阅读

【知识汇总】

一、 获取一个类中方法的详细信息

     1. getDeclaredMethods()方法和getMethods()的区别

        1)getDeclaredMethod*()获取的是类自身声明的所有方法,包含public、protected和private方法。

        2)getMethod*()获取的是类的所有共有方法,这就包括自身的所有public方法,和从基类继承的、从接口实现的所有public方法。

     2. 如何得到一个类的方法的详细信息,下面的代码就是获得一个类的:

        1)方法的名字

        2)参数的类型

        3)方法的返回值的类型

        4)方法的修饰符有

        5)方法的异常类型

     3. 代码介绍:

        1)ModifiersText.java实现获取Text类方法的信息

        2)Test.java测试类

    4. 代码:

        1)ModifiersText.java

 1 import java.lang.reflect.Method;
 2 import java.lang.reflect.Modifier;
 3 
 4 public class ModifiersText {
 5  public static void main(String[] args) throws Exception {
 6    Class c=Class.forName("Test");
 7    //-------------------获取方法的详细信息
 8    //-------------------测试函数getDeclaredMethods()
 9    Method m[]=c.getDeclaredMethods();
10  
11    for(int i=0;i<m.length;i++)
12    {
13      //--------------------获得方法的名字
14      System.out.println("getDeclaredMethods()获得的方法的名字是:"+m[i].getName());
15      
16      //--------------------获得方法参数的类型和有几个参数
17      Class b[]=m[i].getParameterTypes();//获得所有的参数并且存放到数组B中
18      for(int j=0;j<b.length;j++){
19        System.out.println("getDeclaredMethods()获得的参数的类型是"+b[j]);
20      }
21      
22      //--------------------获得方法返回值的类型
23      System.out.println("getDeclaredMethods()获得的方法的返回值的类型"+m[i].getReturnType());//获得方法的返回值类型
24      
25      //--------------------获得方法的修饰符
26      int mod=m[i].getModifiers();
27      System.out.println("getDeclaredMethods()获得的方法的修饰符有"+Modifier.toString(mod));
28      
29      //--------------------获得方法的异常类型
30      Class e[]=m[i].getExceptionTypes();//获得所有的异常类型存放到数组e中
31      for(int k=0;k<e.length;k++){
32         System.out.println("getDeclaredMethods()获得的方法的异常类型是:"+e[k]);
33      }
34      
35    System.out.println("-------------------------------------------------------------------");
36   }
37    
38    //-------------------获取方法的详细信息
39    //-------------------测试函数getMethods()
40    Method n[]=c.getMethods();
41   
42    for(int i=0;i<n.length;i++)
43    {
44      //--------------------获得方法的名字
45      System.out.println("getMethods()获得的方法的名字是:"+n[i].getName());
46      
47      //--------------------获得方法参数的类型和有几个参数
48      Class b1[]=n[i].getParameterTypes();//获得所有的参数并且存放到数组B中
49      for(int j=0;j<b1.length;j++){
50        System.out.println("getMethods()获得的参数的类型是"+b1[j]);
51      }
52      
53      //--------------------获得方法返回值的类型
54      System.out.println("getMethods()获得的方法的返回值的类型"+n[i].getReturnType());//获得方法的返回值类型
55      
56      //--------------------获得方法的修饰符
57      int mod1=n[i].getModifiers();
58      System.out.println("getMethods()获得的方法的修饰符有"+Modifier.toString(mod1));
59      
60      //--------------------获得方法的异常类型
61      Class e1[]=n[i].getExceptionTypes();//获得所有的异常类型存放到数组e中
62      for(int k=0;k<e1.length;k++){
63         System.out.println("getMethods()获得的方法的异常类型是:"+e1[k]);
64      }
65      
66    System.out.println("-------------------------------------------------------------------");
67   }
68  }
69 }
View Code

相关文章: