黑马程序员技术交流社区
标题:
反射-获取Class对象的三种方式
[打印本页]
作者:
何志超
时间:
2015-4-29 11:20
标题:
反射-获取Class对象的三种方式
反射技术:其实就是动态加载一个指定的类,并获取该类中的所有的内容。而且将字节码文件封装成对象,并将字节码文件中的内容都封装成对象,这样便于操作这些成员。
反射的好处:大大的增强了程序的扩展性。
获取Class对象的三种方式:
1:对象.getClass()
如果拿到了对对象,不知道是什么类型,用于获得对象的类型,
Object obj = new Person();
Class clazz1 = obj.getClass();
弊端:必须要创建该类对象,才可以调用getClass方法。
2:类名.class
如果是明确地获得某个类的Class对象 主要用于传参
弊端:必须要先明确该类。
前两种方式不利于程序的扩展,因为都需要在程序使用具体的类来完成。
3:Class.forName("全路径");
根据给定的类名来获得 用于类加载使用的Class类中的方法,静态的forName()方法。
指定什么类名,就获取什么类字节码文件对象,这种方式的扩展性最强,只要将类名的字符串传入即可。
获取了字节码文件对象后,最终都需要创建指定类的对象:
就是使用了Class类中的newInstance()和newInstance(实际参数)方法。
在newInstance(实际参数)方法中需要明确具体的参数类型,不便于扩展,所以一般情况下,被反射的类的内部通常都会提供一个公有的空参构造函数。
作者:
横看成岭侧成锋
时间:
2015-4-29 12:13
总结的很详细,顶
作者:
突然世界晴
时间:
2015-4-29 12:56
总结的很详细
作者:
魔心邪
时间:
2015-4-30 17:57
学到知识了,顶起啊
作者:
ninjaes
时间:
2015-4-30 20:20
希望楼主继续更新呀 视频里的看不懂呀
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2