反射
反射:框架设计的灵魂
框架:半成品软件。可以在框架的基础上进行软件开发,简化编码
反射:将类的的各个组成部分封装为其他对象,这就是反射机制
好处:
1.可以再程序运行过程中,操作这些对象
2.可以解耦,来提高程序的可拓展性
获取Class对象的方式:
1.Class。forName(“全类名”):将字节码文件加载进内存,返回Class对象
2.类名.class:通过类名的属性class获取
3.对象.getClass():getClass方法在object类中定义着。
结论:
同一个字节码文件(*.class)在一次程序运行过程中,只会被加载一次,不论通过哪一种方式获取的Class对象都是同一个
class对象功能:
获取功能:
1.获取成员变量们
Field【】 getFIelds():获取所有public修饰的成员变量
Field getField(String name)
Field【】 getDeclaredFIelds()
Field getDeclaredField(String name)
2.获取构造方法们
Constructor<?> 【】 getConstructor()
Constructor<T> getConstructor(类<?>... parameterTypes)
Constructor<?> 【】 getDeclaredConstructor()
Constructor<T> getDeclaredConstructor(类<?>... parameterTypes)
3.获取成员方法们
Method【】 getMethods()
Method getMethod(String name, 类<?>... parameterTypes)
Method【】 getDeclaredMethods()
Method getDeclaredMethod(String name, 类<?>... parameterTypes)
4.获取类名
String getName()