18.7 本章小结

18.7 本章小结

本章详细介绍了Java反射的相关知识。本章内容对于普通的Java学习者而言,确实显得有点深入,并且会感觉不太实用。但随着知识的慢慢积累,当读者希望开发出更多基础的、适应性更广的、灵活性更强的代码时,就会想到使用反射知识了。
本章从类的加载、初始化开始,深入介绍了Java类加载器的原理和机制。本章重点在于介绍Class,MethodFieldConstructorTypeParameterizedType等类和接口的用法,包括动态创建Java实例和动态调用Java对象的方法。
本章介绍的两个对象工厂实际上就是Spring框架的核心,希望读者用心揣摩。

本章也介绍了利用PoxyInvocationHandler来创建JDK动态代理,并详细介绍了JDK动态代理和AOP之间的关系,这也是Java灵活性的重要方面,对于提高系统解耦也十分重要,希望读者能用心掌握。

本章练习

  1. 开发一个工具类,该工具类提供一个eval方法,实现JavaScripteval(函数的功能——可以动态运行一行或多行程序代码。例如eval("Systen.out.printIn(\"aa\")"),将输出aa
  2. 开发一个对象工厂池,这个对象工厂池不仅可以管理对象的String类型成员变量的值,还可以管理容器中对象的其他类型成员变量的值,甚至可以将对象的成员变量设置成引用到容器中其他对象(这就是Spring所提出的控制反转,即loC)。