一、方法总结
/*
获取Class对象的三种方式
1. Class.forName("全类名");
2.类名.Class;
3.对象.getClass();
*/
二、代码示例
Student类
/*
* Copyright (c) 2020, 2023, webrx.cn All rights reserved.
*
*/
package huang6;
public class Student {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public Student() {
}
}
F1类
package huang6;
public class F1 {
public static void main(String[] args) throws Exception {
/*
获取Class对象的三种方式
1. Class.forName("全类名");
2.类名.Class;
3.对象.getClass();
*/
//1. 第一种 获取Class对象 最为常用
Class<?> c1 = Class.forName("huang6.Student");
System.out.println(c1);
//2. 第二种 获取Class对象 一般更多的当参数进行传递(比如锁对象)
Class<Student> c2 = Student.class;
System.out.println(c2);
//3. 第三种 获取Class对象 当我们有了这个类的对象时才可以使用
Student stu = new Student();
Class<? extends Student> c3 = stu.getClass();
System.out.println(c3);
// 判断获取的字节码文件对象是否是同一个对象
System.out.println(c1.equals(c2));//true
System.out.println(c1.equals(c3));//true
System.out.println(c2.equals(c3));//true
}
}
三、运行结果分析