java.lang.Class类是反射机制操作的起源,为了适应不同情况下的反射机制的操作,java提供有三种Class类对象实例化方式。 方式一:利用Object类中提供getClass()方法获取实例化对象
import java.util.Date; public class JavaReflectDemo437A { public static void main(String[] args) { //【操作特点】需要获取一个类的实例化对象才可以获取Class类实例 Date date=new Date(); Class<?> clazz=date.getClass(); //获取Class类实例化对象 System.out.println(clazz); } }执行结果
class java.util.Date方式二:使用“类.class”形式获取指定类或接口的Class实例化对象
public class JavaReflectDemo437B { public static void main(String[] args) { //【操作特点】直接通过一个类的完整名称可以获取Class类的实例,需要编写import或完整类名称 Class<?> clazz=Member.class; System.out.println(clazz); } } class Member{}执行结果
class com.lxh.seventeenchapter.Member方式三:使用Class类内部提供的forName()方法根据类的完整名称获取实例化对象 Class实例化方法:public static Class<?> forName(String className) throws ClassNotFoundException;
public class JavaReflectDemo437C { public static void main(String[] args) throws ClassNotFoundException { //【操作特点】通过名称字符串(包,类)可以获取Class类实例,可以不使用import导入 Class<?> clazz=Class.forName("com.lxh.seventeenchapter.Member"); System.out.println(clazz); } }执行结果
class com.lxh.seventeenchapter.Member