- 通过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()方法的调用,所以更高效。