如何获取到Class,有如下三种方式:
第一种:Class claszz = Class.forName(”包名.类名“); // 通过反射机制,使用类装载器,装载该类
forNam()这个方法实现方法如下:
@CallerSensitive
public static Class<?> forName(String className)
throws ClassNotFoundException {
Class<?> caller = Reflection.getCallerClass();
return forName0(className, true, ClassLoader.getClassLoader(caller), caller);
}
为什么要使用static修饰符修饰呢?
答:因为static修饰表示在类加载时候就初始化了。
第二种:Class claszz = 类名.class;
第三种:Class claszz = 对象.getClass(); // getClass方法是 Object类中的方法
其中打开getClass方法底层调用的是:Object对象中的方法
public final native Class<?> getClass();