アノテーション
SpotBugs supports several annotations to express the developer's intent so that SpotBugs can issue warnings more appropriately. Annotations for SpotBugs.
<!-- for Maven -->
<dependency>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-annotations</artifactId>
<version>4.9.3</version>
<optional>true</optional>
</dependency>
// for Gradle
compileOnly 'com.github.spotbugs:spotbugs-annotations:4.9.3'
edu.umd.cs.findbugs.annotations.CheckForNull
このアノテーションによって修飾された要素はnullである可能性があります。利用者は利用前にnullであるか確認すべきです。
edu.umd.cs.findbugs.annotations.CheckReturnValue
このアノテーションによって修飾されたメソッドの戻り値は、呼び出し元によって必ず確認されるべきです。
edu.umd.cs.findbugs.annotations.CleanupObligation
このアノテーションによって修飾されたクラスやインタフェースは、資源であり利用後に片付ける必要があります。
edu.umd.cs.findbugs.annotations.CreatesObligation
このアノテーションによって修飾されたコンストラクタやメソッドは、片付ける必要のある資源を生成します。
edu.umd.cs.findbugs.annotations.DefaultAnnotation
このアノテーションに修飾されたクラスあるいはパッケージにあるすべてのメンバーが、デフォルトで指定されたアノテーションにより修飾されているものとして扱われます。
edu.umd.cs.findbugs.annotations.DefaultAnnotationForFields
このアノテーションに修飾されたクラスあるいはパッケージにあるすべてのメンバーが、デフォルトで指定されたアノテーションにより修飾されているものとして扱われます。
edu.umd.cs.findbugs.annotations.DefaultAnnotationForMethods
このアノテーションに修飾されたクラスあるいはパッケージにあるすべてのメンバーが、デフォルトで指定されたアノテーションにより修飾されているものとして扱われます。
edu.umd.cs.findbugs.annotations.DefaultAnnotationForParameters
このアノテーションに修飾されたクラスあるいはパッケージにあるすべてのメンバーが、デフォルトで指定されたアノテーションにより修飾されているものとして扱われます。
edu.umd.cs.findbugs.annotations.DesireNoWarning (非推奨)
アノテーションを用いた手法はラムダ式には利用できません。
edu.umd.cs.findbugs.annotations.DesireWarning (非推奨)
アノテーションを用いた手法はラムダ式には利用できません。
edu.umd.cs.findbugs.annotations.DischargesObligation
修飾されたメソッドを、資源を片付ける処理として表現します。
edu.umd.cs.findbugs.annotations.ExpectWarning (非推奨)
アノテーションを用いた手法はラムダ式には利用できません。
edu.umd.cs.findbugs.annotations.NonNull
修飾された要素はnullであってはなりません。
edu.umd.cs.findbugs.annotations.NoWarning (非推奨)
アノテーションを用いた手法はラムダ式には利用できません。
edu.umd.cs.findbugs.annotations.Nullable
修飾された要素はnullになる可能性があります。修飾されていない要素と同様に扱われます。
edu.umd.cs.findbugs.annotations.OverrideMustInvoke
修飾されたメソッドがオーバーライドされた場合、オーバーライドしたメソッドはオーバーライドされたメソッドを呼び出す必要があります。
edu.umd.cs.findbugs.annotations.PossiblyNull (非推奨)
CheckForNull を使ってください。そちらのほうが意味をより良く表す名前を持っています。nullである可能性に触れるだけでなく、それを確認してから利用すべきと明示しているからです。
edu.umd.cs.findbugs.annotations.ReturnValuesAreNonnullByDefault
このアノテーションはパッケージ、クラスまたはメソッドを修飾します。修飾された範囲において、メソッドの戻り値はデフォルトで非nullとなります。明示的にnullnessを表すアノテーションで修飾したり、親クラスのメソッドをオーバーライドしたり(この場合は親クラスにて修飾されたnullnessが利用されます)、より狭い範囲に適用されるデフォルト値を適用したりすることでデフォルト以外の値が使用されます。
edu.umd.cs.findbugs.annotations.SuppressFBWarnings
SpotBugsによる警告を抑制するのに使用します。
edu.umd.cs.findbugs.annotations.SuppressWarnings (非推奨)
SuppressFBWarnings を代わりに使用してください。
edu.umd.cs.findbugs.annotations.UnknownNullness
修飾された要素がnullになるかどうかが不明な際、またはサブクラスによって決定される際に利用します。
edu.umd.cs.findbugs.annotations.CleanupObligation (非推奨)
このアノテーションによって修飾されたクラスやインタフェースは、資源であり利用後に片付ける必要があります。
edu.umd.cs.findbugs.annotations.CreatesObligation (非推奨)
片付ける必要のある資源を生成するメソッドかコンストラクタを修飾します。修飾されたメソッドはCleanupObligationアノテーションによって修飾されたクラスのメンバーでなければなりません。
edu.umd.cs.findbugs.annotations.DischargesObligation (非推奨)
修飾されたメソッドを、資源を片付ける処理として表現します。修飾されたメソッドはCleanupObligationアノテーションによって修飾されたクラスのメンバーでなければなりません。