参考:Java核心技术 卷I 基础知识
反射库提供了一个非常丰富且精心设计的工具集,以便编写能够动态操纵Java代码的程序。这项功能被大量地应用与JavaBeans中,它是Java组件的体系结构。
能够分析类能力的程序成为反射。反射机制的功能极其强大,在下面可以看到,反射机制可以用来:
- 在运行时分析类的能力
- 在运行时查看对象
- 实现通用的数组操作代码
- 利用Method对象,这个对象很像C++中的函数指针。
反射是一种功能强大且复杂的机制。
在程序运行期间,Java运行时系统始终为所有的对象维护一个被称为运行时的类型标识。这个信息跟踪着每个对象所属的类。虚拟机利用运行时类型信息选择相应的方法执行。
异常有两种类型:未检查异常和已检查异常。对于已检查异常,编译器将会检查是否提供了处理器。然后有很多常见的一场,例如,访问null引用,都属于未检查异常。编译器不会查看是否为这些错误提供了处理器。毕竟,应该精心地编写代码来避免这些错误的发生,而不要将经历花在编写异常处理上。
并不是所有的错误都是可以避免的。如果竭尽全力了还是发生了异常,编译器就要求提供一个处理器。
继承的设计技巧:
- 将公共操作和域放在超类
- 不要使用受保护的域
- 使用继承实现"is-a"关系
- 除非所有继承的方法都有意义,否则不要使用继承
- 在覆盖方法时,不要改变语气的行为
- 使用多态,而非类型信息
- 不要过多地使用反射