【前面的话】
在实际项目中学习知识总是最快和最有效的,既能够较好的掌握知识,又能够做出点东西,还是简单的知识总结,最近一直在总结笔记,写的东西还是比较水,希望慢慢可以写出一些干货。
学习过程中的小知识点总结,基础文章,选择阅读。
【知识汇总】
一、 获取一个类中方法的详细信息
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 }