18

そこで、findbugs アノテーションを使用して、正常なコードと見なされる警告を抑制したいと思います。

Annotation.jar と jsr305.jar を本番ランタイムにデプロイする必要がありますか? それとも、Eclipse プロジェクトと UNIX ビルド環境のクラスパスにこれらの jar のみが必要ですか?

4

2 に答える 2

11

注釈にはさまざまな保持ポリシーがあります。

  • SOURCE - クラスファイルになく、コンパイラによって破棄されます (実行時には必要ありません)
  • CLASS - クラス ファイル内ですが、VM はそれらを破棄できます
  • RUNTIME - 実行時のリフレクションに利用可能

ロジックは、SOURCE 保持アノテーションが実行時に必要ないこと、CLASSは必要ないこと、および RUNTIMEが利用可能でなければならないことを示します。

JSR 305 アノテーションをざっと見てみると、それらが RUNTIME 保持ポリシー ( example ) を使用していることがわかります。これは、これらの jar が実行時にクラスをロードしてアノテーション コントラクトを満たすために実際に必要であることを示しています。

しかし、私は実際にこれを自分でテストしていません。

于 2010-02-17T21:30:29.197 に答える
8

の関連する質問によると、実行時にこれらの注釈が存在しなくても、通常は問題が発生することはありません@Retention(RUNTIME)

于 2010-08-26T16:36:32.540 に答える