Java 8 で、パッケージ レベルの注釈 (つまり、package-info.java
ファイル内の注釈) を階層的にスキャンするにはどうすればよいですか?
たとえば、次のパッケージに存在するClass<x.y.z.C>
最初の型の注釈であるfor を順番に調べたいとします。A
x.y.z
x.y
x
(ルートパッケージ)
リフレクションを使用すると、 for を呼び出しD.class.getPackage()
て取得でき、そのパッケージの注釈を確認できます。Package
x.y.z
しかし、Package
forx.y
を取得する方法はありません(同等x.y.z
の方法はありません)。Package#getParent()
を使用してみPackage.getPackage("x.y")
ましたが、これは を返しますnull
。
そのメソッドが 以外のものを返すようになっていませんnull
。
Reflections、Guava、ByteBuddy、Fast Classpath Scanner などを調査しましたが、パッケージ レベルの注釈を階層的にスキャンする方法がまだ見つかりません。