java反射
# 获取 Class 对象的三种方式
# Class.forName("全类名")
将字节码文件加载进内存,返回 Class
对象
Class cls = Class.forName("cn.mrcdh.Demo");
1
# 类名.class
通过类名的属性class
获取
Class cls = Demo.class;
1
# 对象.getClass()
通过对象的getClass()
方法获取
Demo demo = new Demo();
Class cls = demo.getClass();
1
2
2
注意
同一个字节码文件(*.class)在一次程序运行过程中,只会被夹在一次,不论通过哪种方式获取的 class 对象都是同一个
// 1. Class.formName("全类名")
Class class1 = Class.forName("cn.mrcdh.Demo");
System.out.println(class1);
// 2. 类名.class
Class class2 = Demo.class;
System.out.println(class2);
// 3. 对象.getClass()
Demo p = new Demo();
Class class3 = p.getClass();
System.out.println(class3);
// == 比较三个对象
System.out.println(class1 == class2);
System.out.println(class2 == class3);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
结果:true true
上次更新: 2023/09/22, 16:54:32