在Java 8中,如何分层扫描包级注释(即package-info.java
文件中的注释)?
例如,我想找到Class<x.y.z.C>
,按顺序找到以下包中存在的类型A
的第一个注释:
x.y.z
x.y
x
(根包)使用反射时,我可以致电D.class.getPackage()
获取Package
的{{1}},我可以看到该包装上的注释。
但是无法从x.y.z
获取Package
x.y
(没有x.y.z
或等效方法)。
我尝试使用Package#getParent()
,但这会返回Package.getPackage("x.y")
。
除了null
之外,我还没有得到任何方法。
我调查了Reflections,Guava,ByteBuddy,快速类路径扫描程序等,但仍无法找到分层扫描包级注释的方法。
答案 0 :(得分:0)
我刚刚意识到我可以通过以下方式找到包的注释:
Class.forName("x.y.package-info").getAnnotations()