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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 何志超 初级黑马   /  2015-4-29 11:20  /  1353 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


反射技术:其实就是动态加载一个指定的类,并获取该类中的所有的内容。而且将字节码文件封装成对象,并将字节码文件中的内容都封装成对象,这样便于操作这些成员。
反射的好处:大大的增强了程序的扩展性。
获取Class对象的三种方式:
1:对象.getClass()
如果拿到了对对象,不知道是什么类型,用于获得对象的类型,
Object obj = new Person();
Class clazz1 = obj.getClass();
        弊端:必须要创建该类对象,才可以调用getClass方法。

2:类名.class
如果是明确地获得某个类的Class对象  主要用于传参
        弊端:必须要先明确该类。
         
前两种方式不利于程序的扩展,因为都需要在程序使用具体的类来完成。

3:Class.forName("全路径");
根据给定的类名来获得  用于类加载使用的Class类中的方法,静态的forName()方法。
         指定什么类名,就获取什么类字节码文件对象,这种方式的扩展性最强,只要将类名的字符串传入即可。

       
获取了字节码文件对象后,最终都需要创建指定类的对象:
就是使用了Class类中的newInstance()和newInstance(实际参数)方法。
在newInstance(实际参数)方法中需要明确具体的参数类型,不便于扩展,所以一般情况下,被反射的类的内部通常都会提供一个公有的空参构造函数。

4 个回复

倒序浏览
总结的很详细,顶
回复 使用道具 举报
总结的很详细
回复 使用道具 举报
学到知识了,顶起啊
回复 使用道具 举报
希望楼主继续更新呀 视频里的看不懂呀
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马