0

Java 8 で、パッケージ レベルの注釈 (つまり、package-info.javaファイル内の注釈) を階層的にスキャンするにはどうすればよいですか?

たとえば、次のパッケージに存在するClass<x.y.z.C>最初の型の注釈であるfor を順番に調べたいとします。A

  1. x.y.z
  2. x.y
  3. x
  4. (ルートパッケージ)

リフレクションを使用すると、 for を呼び出しD.class.getPackage()て取得でき、そのパッケージの注釈を確認できます。Packagex.y.z

しかし、Packageforx.yを取得する方法はありません(同等x.y.zの方法はありません)。Package#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 に答える