Java反射机制剖析:定义和API

发表于:2012-2-09 09:45

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:lfsf802    来源:51Testing软件测试网采编

  简单介绍一些类和接口的用法:

  1)Member成员是一种接口,反映有关单个成员(字段或方法)或构造方法的标识信息

  2)InvocationHandler是代理实例的调用处理程序实现的接口(这个接口的具体用法等到java反射机制剖析4着重介绍)

  3)Method提供一个类的方法的信息以及访问类的方法的接口。

  示例:

  1. import java.lang.reflect.Method;  
  2.  
  3. public class TestMethod {  
  4.  
  5.     /**  
  6.      * @param args  
  7.      * @throws Exception   
  8.      */ 
  9.     public static void main(String[] args) throws Exception {  
  10.         // TODO Auto-generated method stub  
  11.         Class classType=Class.forName(args[0]);  
  12.         Method methods[]=classType.getDeclaredMethods();  
  13.         for(int i=0;i<methods.length;i++){  
  14.             System.out.println(methods[i].toString());  
  15.         }  
  16.     }  
  17.  
  18. }

  4)Filed提供一个类的域的信息以及访问类的域的接口。

  示例:

  1. import java.lang.reflect.Field;  
  2.  
  3.  
  4. public class TestField {  
  5.  
  6.     /**  
  7.      * @param args  
  8.      * @throws Exception   
  9.      */ 
  10.     public static void main(String[] args) throws Exception {  
  11.         // TODO Auto-generated method stub  
  12.         Class classType=Class.forName(args[0]);  
  13.         Field[] fields = classType.getFields();  
  14.         for(int i=0;i<fields.length;i++){  
  15.         System.out.println(fields[i].toString());  
  16.         }  
  17.     }  
  18.  
  19. }

  5)Array类提供了动态创建和访问Java数组的方法。

  示例:

  1. import java.lang.reflect.Array;  
  2.  
  3.  
  4. public class TestArray {  
  5.  
  6.     public TestArray(){  
  7.           
  8.     }  
  9.     /**  
  10.      * @param args  
  11.      * @throws Exception   
  12.      */ 
  13.     public static void main(String[] args) throws Exception {  
  14.           
  15.         Class<?> classType = Class.forName("java.lang.String");  
  16.           
  17.         Object array = Array.newInstance(classType, 10);  
  18.           
  19.         Array.set(array, 5"hello");  
  20.           
  21.         String s = (String)Array.get(array, 5);  
  22.         System.out.println(s);  
  23.           
  24.     }  
  25.  
  26. }

  6)Proxy提供动态地生成代理类和类实例的静态方法(这个方法在java放射机制剖析4着重介绍)。

  其余的类和接口的使用方法详见API

22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号