反射:框架的设计的灵魂
- 框架:半成品软件。可以在框架的基础上进行软件开发,简化代码。
- 反射: 将类的各个组成部分封装其他对象,这就是反射机制。
* 好处:
1.可以在程序的运行的过程中,操作这些对象。
2.可以解耦,提高程序的可扩展性。 - 获取Class对象的方法:
1. Class.forName(“全类名”):将字节码文件加载进内训,返回Class对象。
多用于配置文件,将类名定义在配置文件中。读取文件,加载类。
2. 类名.Class : 通过类名的属性class获取
多用于参数的传递。
3. 对象.getClass() : getCLass()方法在object类中定义着。
多用于对象的获取字节码的方式
- 结论:
同一个字节码文件(*.class)在一次程序运行中,只会被加载一次,不论通过哪一种方式获取的Class对象都是同一个。 - Class对象的功能:
获取功能;
1.获取成员变量们
* Field[ ] getFields();
* Field getField(String name);
* Field[ ] getDeclaredFields();
* Field getDeclaredField(String name)
a.setAccessible(true);//暴力反射
2.获取构造方法们
* Constructor<?>[] getConstructors()
* Constructor<‘T’> getConstructor(Class<?>... parameterTypes)
* Constructor<?>[] getDeclaredConstructors()
* Constructor<‘T’> getDeclaredConstructor(Class<?>... parameterTypes)
3.获取成员方法们
* Method[] getDeclaredMethods()
* Method getMethod(String name,
Class<?>... parameterTypes)
* Method[] getDeclaredMethods()
* Method getDeclaredMethod(String name,
Class<?>... parameterTypes)
4.获取类名
*String getName()
Declared 可以获取所有的
网友评论