一、创建Class对象有3种方式
- 类名.class
- 实例.getClass()
- Class.forName(“类的全路径”)
1、代码示例
package com.xz.springboottest.day1;
/**
* @description:
* @author: xz
*/
public class Person {
private String name;
private int age;
//getter、setter方式省略
}
package com.xz.springboottest.day1;
/**
* @description:
* @author: xz
*/
public class PersonTest {
public static void main(String[] args) throws ClassNotFoundException {
//类.class
Class personClass1= Person.class;
System.out.println("通过类.class方式创建Class对象:"+personClass1);
//实例.getClass()
Person person = new Person();
Class personClass2 = person.getClass();
System.out.println("通过实例.getClass()方式创建Class对象:"+personClass2);
//Class.forName("类的全路径")
Class personClass3 = Class.forName("com.xz.springboottest.day1.Person");
System.out.println("通过Class.forName(\"类的全路径\")方式创建Class对象:"+personClass3);
System.out.println(personClass1==personClass2);
System.out.println(personClass1==personClass3);
}
}
2、输出结果如下所示 3、解释
- 由输出结果可知,我们已经获得了Class对象了,那么我们就可以使用这个Class对象,来使用反射的方式,创建我们需要的实例对象了。
- 这三种方式没有什么太大的区别,根据具体使用场景,进行选择使用即可。