0

在 Java 8 中,如何分层扫描包级注释(即package-info.java文件中的注释)?

例如,我想找出存在于以下包中Class<x.y.z.C>的类型的第一个注释,按顺序:A

  1. x.y.z
  2. x.y
  3. x
  4. (根包)

使用反射时,我可以调用D.class.getPackage()来获取Packagefor x.y.z,并且可以看到该包上的注释。

但是没有办法从中获取for Package(没有或等效的方法)。x.yx.y.zPackage#getParent()

我尝试使用Package.getPackage("x.y"),但这会返回null

我还没有得到那种方法来返回除null.

我研究了 Reflections、Guava、ByteBuddy、Fast Classpath Scanner 等,但仍然找不到分层扫描包级注释的方法。

4

1 回答 1

0

我刚刚意识到我可以通过以下方式找到包的注释:

Class.forName("x.y.package-info").getAnnotations()
于 2016-02-14T00:39:22.657 回答