在Java 8中,如何分层扫描软件包级注释(即package-info.java
文件中的注释(?
例如,我想找出Class<x.y.z.C>
,在以下包上找到的第 A
类型注释,按顺序:
-
x.y.z
-
x.y
-
x
-
(根包(
使用反射时,我可以调用Package
来获取Package
的x.y.z
,并且我可以看到该包上的注释。
但是没有办法从Package#getParent()
获得x.y.z
x.y
(没有Package.getPackage("x.y")
或等效的方法(。
我尝试使用null
,但这返回null
。
除了CC_17之外,我还没有得到该方法返回任何其他内容.
我已经研究了Reflections,Guava,ByteBuddy,Fast Classpath Scanner等,但仍然找不到分层扫描包级注释的方法。
我刚刚意识到我可以通过执行以下操作找到包的注释:
Class.forName("x.y.package-info").getAnnotations()