java 中的反射API 暑假第十天

 


java 中的反射API   反射API 当我们在开发Debugger的时候用到  反射API可以获得一个类的内部构造  定义的成员 方法 构造函数 。。。

java.lang.reflect.*  必须导入因为java.lang会自动导入但是 子包却不会    这个包中有一堆类  如 Method  Field  Construction类 等等

java.lang.Class  中的函数可以获得 这些类的数组  例如getDeclaredFields() 返回声明的 所有 变量的一个Field 数组
                                                    getDeclaredConstructions()返回声明的所有的Construction类构造函数的数组
                                                    getDeclaredMethods() 返回所有的Method方法  我们可以利用System.out.println()输出类
                                                   
 

*/
import java.lang.reflect.* ;
class Test
{
 public static  void main(String[]args)  throws Exception   //声明抛出异常 那么我们就不用捕捉了
 {
  if(args.length!=1)
  System.exit(-1);
  else
  {
   Class c1= Class.forName(args[0]);
   Constructor []cons=c1.getDeclaredConstructors(); //获得定义的构造函数
   Method []meds=c1.getDeclaredMethods();  //获得定义的方法
   Field []fies=c1.getDeclaredFields() ;//获得定义的字段也就是变量
   for(int n=0;n<cons.length;n++)
         System.out.println(cons[n]);  //输出定义的构造函数
   for(int n=0;n<meds.length;n++)
         System.out.println(meds[n]);  //输出定义的方法
   for(int n=0;n<fies.length;n++) 
         System.out.println(fies[n]);   //输出定义的成员变量  
  }
 }
}

posted on 2011-07-29 00:21  风尘女子  阅读(117)  评论(0编辑  收藏  举报

导航