FindBugsとは、Javaのソースコードにあるバグを解析するツールである。FindBugsはスタンドアロンのGUIアプリケーションであるが、EclipseやJenkinsのプラグインとしても利用可能である。
FindBugs Eclipseプラグインを実行するには、Javaプロジェクト上で右クリックして、[バグを検索] - [バグを検索]を選択する。FindBugsを実行すると、バグと識別されたコード箇所に問題マーカが付き、Javaエディタやバグ・エクスプローラー・ビューに表示される。
FindBugsの動作をワークスペースごとにカスタマイズするには、Eclipseの[ウィンドウ]メニューから[設定]をクリックする。設定ダイアログが開くので、[Java] - [FindBugs]をクリックすると、FindBugsの設定項目が表示される。任意の項目を入力し、[OK]ボタンをクリックする。
FindBugsの動作をプロジェクト固有にカスタマイズするには、Javaプロジェクト上で右クリックし、メニューの[プロパティー]をクリックする。Javaプロジェクトのプロパティーダイアログが開くので、[FindBugs]をクリックすると、FindBugsの設定項目が表示される。任意の項目を入力し、[OK]ボタンをクリックする。
アノテーション | 説明 |
---|---|
@CheckForNull | このフィールド、メソッド及びパラメータはnullである可能性がある。 |
@CheckReturnValue | メソッドは、呼出し後に戻り値をチェックすべきである。 |
@DefaultAnnotation | パッケージ又はクラス内すべてのフィールド、メソッド及びパラメータに対して、指定したアノテーションを適用する。 |
@DefaultAnnotationForFields | パッケージ又はクラス内すべてのフィールドに対して、指定したアノテーションを適用する。 |
@DefaultAnnotationForMethods | パッケージ又はクラス内すべてのメソッドに対して、指定したアノテーションを適用する。 |
@DefaultAnnotationForParameters | パッケージ又はクラス内すべてのパラメータに対して、指定したアノテーションを適用する。 |
@NonNull | フィールドやパラメータはnullであってはならない。メソッドはnullを戻り値として返してはならない。 |
@Nullable | フィールド、メソッド及びパラメータはnullである可能性がある。 |
@OverrideMustInvoke | メソッドがオーバーライドされた場合、オーバーライドしたメソッド内でsuperを呼び出すべきである。 |
@SupressWarning | パッケージ、フィールド、メソッド及びパラメータは、指定した警告の出力が抑制される。 |
@edu.umd.cs.findbugs.annotations.CheckForNullアノテーションを付けたフィールド、メソッド及びパラメータはnullである可能性がある。したがって、これらを使用する際はnullチェックをすべきである。
import edu.umd.cs.findbugs.annotations.CheckForNull;
@CheckForNull String get(@CheckForNull String key) {
String value;
// do something
return value;
}
このアノテーションを付けたメソッドは、呼出し後に戻り値をチェックすべきである。
このアノテーションを付けたパッケージ又はクラス内すべてのフィールド、メソッド及びパラメータに対して、指定したアノテーションを適用する。
このアノテーションを付けたパッケージ又はクラス内すべてのフィールドに対して、指定したアノテーションを適用する。
このアノテーションを付けたパッケージ又はクラス内すべてのメソッドに対して、指定したアノテーションを適用する。
このアノテーションを付けたパッケージ又はクラス内すべてのパラメータに対して、指定したアノテーションを適用する。
このアノテーションを付けたフィールドやパラメータはnullであってはならない。このアノテーションを付けたメソッドはnullを戻り値として返してはならない。
このアノテーションを付けたフィールド、メソッド及びパラメータはnullである可能性がある。
このアノテーションを付けたメソッドがオーバーライドされた場合、オーバーライドしたメソッド内でsuperを呼び出すべきである。
このアノテーションを付けたパッケージ、フィールド、メソッド及びパラメータは、指定した警告の出力が抑制される。