私の質問はこれのフォローアップです。
FindBugsの過去のバージョンでは、パッケージ内のすべてのフィールド@DefaultAnnotation(Nonnull.class)
をとして使用または指定することが可能でした。FindBugs(2.0)の現在のバージョンでは、非推奨であり、代わりにJSR-305を使用する必要があります。しかし、JSR-305は、(現在は非推奨の)FindBugsアノテーションがカバーするすべてをカバーしているようには見えません。@DefaultAnnotationForFields(Nonnull.class)
@Nonnull
@DefaultAnnotation
@DefaultAnnotationForFields
javadocは、いくつかの代替案を提案しています。
@ParametersAreNonnullByDefault
。これは(明らかに)パラメータにのみ適用され、メンバーフィールドには適用されません。@CheckReturnValue
、タイプまたはパッケージに適用された場合。繰り返しますが、これはメンバーフィールドには適用されません。@TypeQualifierDefault
。多分これは私が望むことをすることができます、しかし私はそれがどのように機能するか理解していません、そして私はいくつかの不可解なjavadocを除いて、その使用法や意図に関するドキュメントや例を見つけることができません。独自の注釈を作成するのに役立つと思いますが、すべてのツール(FindBugs、Eclipseなど)がこの新しい注釈を正しく(またはまったく)解釈することを確認できますか?
javadocは、その非推奨に対処する方法についてのヒントを提供していません。
それで、FindBugsやJSR-305の現在のバージョンを使用して、特定のパッケージ(または特定のクラス)のすべてのメンバーフィールドがとして扱われることになっていることをどのように示す必要があります@Nonnull
か?それも可能ですか?