刚学习了反射,一起来浅谈一下^^
一.什么是反射?
反射机制其实就是程序在运行时,对于任意一个类都可以获取它的属性和方法,对于任意一个对象都能调用它的属性和方法,即使这些属性和方法是私有的。
二.反射的通俗理解:
反射机制可以用一个比喻来理解:
假如反射机制是镜子,类是人。
当人在照镜子的时候(程序运行时),镜子(反射机制)会反映出这个 人(类)长啥样,是长头发还是短头发,是男人还是女人或者…(类的名称,注解,构造方法,属性,方法,继承关系等) 。
三.举一个反射的栗子:
InputStream is = JdbcUtils.class.getClassLoader().getResourceAsStream(“db.properties”);
Class.forName(driverClass);
这两句运用了反射机制。第一句是通过反射获取类的加载器,第二句是将Driver这个对象加载到jvm中,因为在调用DriverManager的getConnection方法之前,保证相应的Driver类已经被加载到 jvm中,并且完成了类的初始化工作就行了
Class是反射技术的基础,要想操纵类中的属性和方法,都必须从获取Class开始。
常见获取Class对象的方式(Class对象由虚拟机创建,只能获取):
1.Class c = Object.class; 这种方式最好,安全可靠
2.Class c1 = object.getClass();
3.Class c2 = Class.forName(“类的全称”);