- 通过
Object
类中的getClass()
方法; - 通过静态方法
Class.forName("全类名")
; - 通过类字面常量
Class.class
。
三种获取Class类型的实例的方法
方法1:通过Object
类中的getClass()
方法返回一个Class
类型的实例
示例如下:
Person person = new Person();Class clazz = person.getClass();
方法2:通过静态方法Class.forName("全类名")
获取类名对应的Class
对象
Class.forName()
方法原型:
public static Class<?> forName(String className) throws ClassNotFoundException
若无法根据类路径className
找到对应的 .class
文件会抛出 ClassNotFoundException
异常,因此使用forName()
方法需要捕获异常或向上抛出异常。
示例如下:
Class clazz = null;
String className = "step1.Person";
try {clazz = Class.forName(className);
} catch(ClassNotFoundException e) {
}
方法3:通过类字面常量Class.class
获取
示例如下:
Class clazz = Person.class;
该方法不仅更简单,而且更安全,因为它在编译时就会受到检查(因此不需要置于try
语句块中)。并且它根除了对forName()
方法的调用,所以更高效。