Package.getPackage在java中返回null(Package.getPackage

2019-07-29 20:53发布

我有一些类A,B,C中包com.abc

我有一个类主要封装com.pqr

现在,我想创建以前pacakge(ABC)的包装对象。

为此,我试过了,

Package pkg = Package.getPackage("com.abc");   // This gives me null object in pkg

但是,当我这样做,

Package pkg = A.class.getPackage();    // It works fine

谁能通知,为什么Package.getPackage(“包名”)不工作?

Answer 1:

如果当前的ClassLoader已经知道包的Package.getPackage只会返回一个非空值。 试试这个:

Package pkg = Package.getPackage("com.abc");
System.out.println(pkg);
Class<A> a = A.class;
pkg = Package.getPackage("com.abc");
System.out.println(pkg);

所述第一的System.out将打印“空”时,第二将打印包名作为类加载器已经然后从它加载一个类。



文章来源: Package.getPackage in java returning null