通过反射查看类的信息
Java程序中许多对象在运行时都会出现两种类型:编译时类型和运行时类型
例如:Person p = new Student();
编译类型为:Person
运行类型为:Student
为了解决这种问题,有两种方式:
- 假设在编译时和运行时都完全知道类型的具体信息,在这种情况下,可以先使用instanceof 运算符进行判断
- 编译时无法知道对象和类属于那些类,程序只能依靠运行时信息来发现该对象和类的真实信息,这就必须通过反射
1. 获得 Class 对象
java程序中获得 Class 对象有三种方式
- 使用Class 类的forName(String clazzName)静方法。必须是完整包名。
- 调用某个类的class属性来获取该类的 Class 对象。
- 调用某个对象的getClass() 方法。
2. 从 Class 对象中获取信息
具体使用查阅API文档,下面以一个例子来说明
|
|
运行结果如下:
3. Java8 新增的方法参数反射
|
|