Java ClassLoader findSystemClass()方法与示例

ClassLoader类findSystemClass()方法

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

  • findSystemClass()方法用于查找具有给定二进制名称的类,并在需要时通过系统加载器加载该类。

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

  • 在使用给定类查找类时,findSystemClass()方法可能会引发异常。
    ClassNotFoundException:如果给定的类不存在,则可能引发此异常。

语法:

    protected Class findSystemClass(String class_name);

参数:

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

返回值:

该方法的返回类型为Class,它返回给定类名的Class对象。

示例

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

class FindSystemClass extends ClassLoader {
    void loadedSystemClass() throws ClassNotFoundException {
        //它检查给定的类是否已加载
        //是否使用findSystemClass()
        Class cl1 = super.findSystemClass("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 system classloader!!!");
    }
}

public class Main {
    public static void main(String[] args) throws Exception {
        //创建一个FindSystemClass的实例
        FindSystemClass sc = new FindSystemClass();
        sc.loadedSystemClass();
    }
}

输出结果

Class already loaded!!!