4

Eclipse プロジェクトで FindBugs を実行したところ、特定の理由 (この質問のコンテキスト外) で抑制したい潜在的なバグ警告が表示されました。コードは次のとおりです。

public class LogItem {
    private String name;

    private void setName(final String nm) {
        name = nm;
    }
}

このクラスで FindBugs を実行すると、name = nm割り当て操作に関する警告が表示されますUnread field: com.me.myorg.LogItem.name

だから私はこれを追加しようとしました:

    private void setName(final String nm) {
        @edu.umd.cs.findbugs.annotations.SuppressWarnings(value = "NP", justification = "Because I can")
        name = nm;
    }

これを行うと、Eclipse で次のような構文 (コンパイル) エラーが発生します。

ローカル変数 nm が重複しています。名前を型に解決できません。

そこでSuppressWarnings、フィールド自体に FindBugs を追加しようとしましたが、クラスで FindBugs を再実行した後でも、FindBugs は同じコード行について同じ理由で不平を言っています。メソッドにを追加してみましたSuppressWarningsが、それでも違いはありません。setName

FindBugs を鎮めるためにこの注釈をどのように (正確に!) 使用すればよいでしょうか?!?

4

2 に答える 2

2

java.lang.SuppressWarningsFindBugs ではなく、組み込みの を常に使用してきましたが、これまでのところ機能しています。また、特定のステートメントについては、注釈の直後の同じ行にステートメントを保持する必要がある場合があります。お気に入り

    @SuppressWarnings("NP") name = nm;

また、"NP"ここに有効な警告識別子がありますか? "unused"他に何もうまくいかないようなら試してみます。

于 2012-06-04T16:24:39.367 に答える
2

フィールドに注釈を付けて、バグ識別子を修正します。これは私のために働く:

public class LogItem {
    @edu.umd.cs.findbugs.annotations.SuppressWarnings("URF_UNREAD_FIELD")
    private String name;
于 2012-06-04T21:16:43.540 に答える