Java ClassLoader getPackages()方法与示例

ClassLoader类getPackages()方法

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

  • getPackages()方法用于返回由此类加载器定义的Packages数组或由此类加载器祖先定义的Packages的数组。

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

  • 返回Package对象时,getPackages()方法不会引发异常。

语法:

    protected Package[] getPackages();

参数:

  • 它不接受任何参数。

返回值:

此方法的返回类型为Package [],它返回此ClassLoader定义的程序包数组。

示例

//Java程序演示示例 
//getPackages()ClassLoader的Package []方法

public class GetPackagesOfClass extends ClassLoader {
    void getPackags() throws ClassNotFoundException {
        //它返回包
        Package[] pack = super.getPackages();

        //显示包名称
        System.out.print("Package List: ");

        for (int i = 0; i < pack.length; ++i)
            System.out.println(pack[i].getName());
    }

    public static void main(String[] args) throws Exception {
        GetPackagesOfClass gp = new GetPackagesOfClass();
        gp.getPackags();
    }
}

输出结果

Package List: java.nio.file
java.lang.reflect
sun.security.action
java.util.concurrent
sun.net.www.protocol.jrt
java.util.zip
jdk.jfr.internal
sun.nio
java.net
java.security
java.lang.module
sun.reflect.annotation
sun.launcher
java.util.concurrent.locks
jdk.internal.misc
jdk.internal.org.objectweb.asm
java.lang.ref
jdk.internal.loader
sun.security.util
java.util
java.lang.invoke
sun.net.www
java.util.concurrent.atomic
jdk.internal.ref
sun.invoke.util
java.nio
sun.net.www.protocol.jar
java.util.jar
java.nio.file.attribute
java.util.function
java.nio.charset
java.io
java.util.stream
java.security.cert
java.lang
jdk.internal.util
java.nio.file.spi
sun.util.locale
jdk.internal.reflect
sun.net.util
sun.nio.cs
jdk.internal.module
java.lang.annotation
sun.net.www.protocol.file
sun.nio.fs
java.nio.charset.spi