Java反射机制

发表于:2014-5-23 09:55

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

 作者:实现方法    来源:51Testing软件测试网采编

  反射(Reflection)
  java中无论某一个类生成多少个对象,这些对象都会对应于同一个Class对象()一个类,对应于一个Class 对象。
  1.发射的4个基本功能:
  1.在运行时判断任意一个对象所属的类。
  2.在运行时构造任意一个类的对象。
  3.在运行时判断任意一个类所具有的成员变量。
  4.在运行时调用任意一个对象的方法。
  2.实现反射的类主要有5个:
  1.Class 类                             代表一个类,存在于java.lang 包中
  2.Field 类                               代表类的成员变量(也称属性),java.lang.reflect
  3.Method 类                           代表类的方法
  4.Constructor 类                   代表类的构造方法
  5.Array 类                               提供了动态创建数组,以及访问数组元素的静态方法
  * Class 代表一类什么样的事物?
  * 任何类型都可以用一个Class来表示,任何类型在内存中都是一份字节码。
  *
  * 如何给Class 赋值?
  * Class cls1=Person.class; 代表Person 那个类的字节码。
  * Class cls2=Date.class; 代表Date 那个类的字节码。
  * 有两种返回方式,
  * 第一种是该份字节码被加载过,java虚拟机里直接返回即可,
  * 第二种是Java虚拟机还没有该字节码,则用类加载器去加载,把加载进来的字节码缓存在虚拟机里,以后要得到该字节码就不用在加载了
  *
  * 得到字节码的方式有三种,使用平率都很高
  * 1.类名.class  固定的写法,
  * 2.对象.getClass();
  * 3.Class.forName("类名");  反射主要使用Class.forName("java.lang.string"); 因为在写源程序的时候还不知道类的名字
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号