A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lyssenlove 中级黑马   /  2014-7-8 18:48  /  1350 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

反射是把java类中的各种成分映射成java类,以便能进行更复杂的操作,对于一个类中的构造函数、属性以及函数,为什么还需要通过字节码的方式拿到它的Constructor类、Field类和Method类,在实际的项目操作会在哪应用它。

3 个回复

倒序浏览
一个Java类中用一个Class类的对象来表示,一个类中的组成部分:成员变量,方法,构造方法,包等等信息也用一个个的Java类来表示,就像汽车是一个类,汽车中的发动机,变速箱等等也是一个个的类。表示java类的Class类显然要提供一系列的方法,来获得其中的变量,方法,构造方法,修饰符,包等信息,这些信息就是用相应类的实例对象来表示,它们是Field、Method、Contructor、Package等等。
回复 使用道具 举报
  反射(Reflection)是.NET中的重要机制,通过放射,可以在运行时获得.NET中每一个类型(包括类、结构、委托、接口和枚举等)的成员,包括方法、属性、事件,以及构造函数等。还可以获得每个成员的名称、限定符和参数等。有了反射,即可对每一个类型了如指掌。如果获得了构造函数的信息,即可直接创建对象,即使这个对象的类型在编译时还不知道。
回复 使用道具 举报
因为封装的原因,所以一般情况下会把一些构造方法,方法,成员变量设定为private,看到后面我觉得为什么要讲类的加载,反射,javaBean全都是为动态代理打基础的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马