18.7 本章小结
18.7 本章小结
本章详细介绍了Java
反射的相关知识。本章内容对于普通的Java
学习者而言,确实显得有点深入,并且会感觉不太实用。但随着知识的慢慢积累,当读者希望开发出更多基础的、适应性更广的、灵活性更强的代码时,就会想到使用反射知识了。
本章从类的加载、初始化开始,深入介绍了Java
类加载器的原理和机制。本章重点在于介绍Class
,Method
、Field
、Constructor
、Type
、ParameterizedType
等类和接口的用法,包括动态创建Java
实例和动态调用Java
对象的方法。
本章介绍的两个对象工厂实际上就是Spring
框架的核心,希望读者用心揣摩。
本章也介绍了利用Poxy
和InvocationHandler
来创建JDK
动态代理,并详细介绍了JDK
动态代理和AOP
之间的关系,这也是Java
灵活性的重要方面,对于提高系统解耦也十分重要,希望读者能用心掌握。
本章练习
- 开发一个工具类,该工具类提供一个
eval
方法,实现JavaScript
中eval
(函数的功能——可以动态运行一行或多行程序代码。例如eval("Systen.out.printIn(\"aa\")")
,将输出aa
- 开发一个对象工厂池,这个对象工厂池不仅可以管理对象的
String
类型成员变量的值,还可以管理容器中对象的其他类型成员变量的值,甚至可以将对象的成员变量设置成引用到容器中其他对象(这就是Spring
所提出的控制反转,即loC
)。