Updated at 2019/7/12
定义
能够分析类能力的程序称为反射(reflective)。
作用
- 在运行时分析类的能力
- 在运行时查看对象
- 实现通用的数组操作代码
- 利用Method对象(暂时不懂)
Class类
三种方法获得Class对象
Employee e = new Employee();
//第一种
Class c1 = e.getClass();
System.out.println(c1.getName());
//第二种
//P.S. 必须要抛出异常
String className = "java.util.Random";
try {
Class c2 = Class.forName(className);
System.out.println(c2.getName());
}catch (ClassNotFoundException e1){
e1.getStackTrace();
}
//第三种
Class c3 = Employee.class;
System.out.println(c3.getName());
-
Class对象表示一个“类型”,类型不一定是一种类。
eg. int 不是类,但是int.Class是一个Class类型的对象。 -
Class是泛型类。
-
虚拟机为每个类型管理一个Class对象,所以,可以比较两个类。
e.getClass() == Employee.class;