Java ClassLoader findLoadedClass()方法与示例

ClassLoader类findLoadedClass()方法

  • findLoadedClass()方法在java.lang包中可用。

  • 当JVM在使用该二进制名称初始化类的加载器时记录了该加载器时,将使用findLoadedClass()方法返回具有给定二进制类名称的Class。

  • findLoadedClass()方法是一个非静态方法,只能通过类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息。

  • 在加载Class对象时,findLoadedClass()方法可能会引发异常。

语法:

    protected Class findLoadedClass(String class_name);

参数:

  • 字符串class_name –表示类的二进制名称。

返回值:

此方法的返回类型为Class,当记录了该类时,它将返回Class对象;否则,当尚未记录该类时,它将返回null。

示例

//Java程序演示示例 
//类findLoadedClass(String class_name)
//ClassLoader的方法 

class FindLoadedClass extends ClassLoader {
    void loadedClass() {
        //它检查给定的类是否已加载
        //是否使用findLoadedClass()
        Class cl1 = super.findLoadedClass("java.lang.String");

        //如果cl1不为null,则表示已加载cl1-
        //然后不需要再次加载
        if (cl1 != null)
            System.out.println(" Class already loaded!!!");
        else
            System.out.println("Ready to load the given class by using loadClass()!!!");
    }
}

public class Main {
    public static void main(String[] args) throws Exception {
        //创建FindLoadedClass的实例
        FindLoadedClass lc = new FindLoadedClass();
        lc.loadedClass();
    }
}

输出结果

Ready to load the given class by using loadClass()!!!