Java教程是针对JDK 8编写的。本页面描述的示例和实践不利用后续版本引入的改进,并且可能使用不再可用的技术。
请参阅Java语言更改以了解Java SE 9及后续版本中的更新语言特性的摘要。
请参阅JDK发布说明以获取有关所有JDK版本的新功能、增强功能和已删除或已弃用选项的信息。
反射通常被需要在Java虚拟机中运行的应用程序使用,这些应用程序需要能够检查或修改运行时行为。这是一个相对高级的功能,应该只由对语言基础有很好掌握的开发人员使用。尽管如此,反射是一种强大的技术,可以使应用程序执行其他情况下不可能的操作。
反射功能强大,但不应盲目使用。如果可以在不使用反射的情况下执行操作,则最好避免使用反射。在通过反射访问代码时应注意以下问题。
private
字段和方法,使用反射可能导致意外的副作用,可能使代码无法正常工作并破坏可移植性。反射代码打破了抽象,因此在平台升级时可能会改变行为。
本教程介绍了使用反射访问和操作类、字段、方法和构造函数的常见用法。每个课程都包含代码示例、提示和故障排除信息。
Class
对象的各种方法,并使用它来检查类的属性,包括其声明和内容。
enum
类型。示例代码演示了如何获取数组的组件类型以及如何设置和获取数组或 enum
类型的字段。
本教程中的示例是为了实验反射 API 而设计的。因此,异常的处理方式与生产代码中的方式不同。特别是,在生产代码中,不建议将可见于用户的堆栈跟踪信息输出。