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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Morrfree 中级黑马   /  2015-8-30 12:34  /  124 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

反射
Class:
概述:代表Class文件内容的类.
Class内容主要包括 成员变量 构造函数  成员方法
类加载器:
负责将.class文件加载到内存中,并为之生成对应的Class对象
类加载器的组成
Bootstrap ClassLoader  根类加载器
Extension ClassLoader  扩展类加载器
System ClassLoader   系统类加载器
       
反射机制:
就是通过Class 对象,去使用该文件中的成员变量,构造方法,成员方法.
获取字节码文件对象:
1.Object类中的getClass()方法.
2.数据类型的静态属性:class
3.Class中的静态方法:
public static Class forName(String className)
注意:
开发中使用第三种.

类中成员的三种类的表现形式:
成员变量类:   Field    包含所有成员变量的信息
构造方法类:   Constructor  包含所有构造方法的信息
成员方法类:    Method   包含所有方法的信息
这三种类分别表示类中成员的具体信息.

Decelare:可以忽略权限修饰符进行获取.
通过反射获取构造方法并使用.
先获取字节码文件对象,利用其中的获取单个构造器方法并创建对象.
通过反射获取成员变量并使用
通过字节码文件对象获取单个成员变量,使用其中的set()方法,为成员变量进行赋值.
通过反射获取成员方法并使用.
通过字节码文件对象获取单个成员方法, 再通过方法对象调用invoke()方法,返回对象.如果方法是私有的,则要通过方法对象调用SetAccessible()方法.然后再调用invoke()方法,创建对象.

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马