20. Java 使用反射(Reflection)-和内省技术
反射(Reflection)是程序的自我分析能力,通过反射可以确定类有哪些方法、有哪些构造方法以及有哪些成员变量。Java 语言提供了反射机制,通过反射机制能够动态读取一个类的信息;能够在运行时动态加载类,而不是在编译期。反射可以应用于框架开发,它能够从配置文件中读取配置信息动态加载类、创建对象,以及调用方法和成员变量。
Java 反射机制 API
Java 反射机制 API 主要是 java.lang.Class
类和 java.lang.reflect
包。
java.lang.Class 类
java.lang.Class 类是实现反射的关键所在,Class 类的一个实例表示 Java 的一种数据类型,包括类、接口、枚举、注解(Annotation)、数组、基本数据类型和 void,void 是“无类型”,主要用于方法返回值类型声明,表示不需要返回值。Class 没有公有的构造方法,Class 实例是由 JVM 在类加载时自动创建的。
方法1:调用 Object 类的 getClass()方法。
方法2:使用 Class 类的 forName()方法。
方法3:如果 T 是一个 Java 类型,那么 T.class 就代表了与该类型匹配的 Class 对象。