caiguangbi-53

如何获取到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();

分类:

技术点:

相关文章: