があるので、無視する単一のFindBugs警告?
-
11-09-2019 - |
質問
とPMDしたい場合は、無視する特定の警告、利用できる // NOPMD
その線は無視されます。
ものがあるのか、それは何なのかで似たよFindBugs?
解決
FindBugsの最初のアプローチは、別名がのフィルタリングXML設定ファイルが含まれます。これは、PMDのソリューションよりも、本当に不便ですが、コメントは明らかにオプションではありませんので、FindBugsのは、バイトコードではなく、ソースコード上で動作します。例:
<Match>
<Class name="com.mycompany.Foo" />
<Method name="bar" />
<Bug pattern="DLS_DEAD_STORE_OF_CLASS_LITERAL" />
</Match>
ただし、この問題を解決するために、FindBugsのは、後で注釈に基づいて別のソリューションを導入しました(あなたがで使用することができます) SuppressFBWarnings
するを見ますクラスやメソッドレベルで(私の意見ではXMLより便利)。例(1おそらく最高ではないけど、まあ、それは単なる例です):
@edu.umd.cs.findbugs.annotations.SuppressFBWarnings(
value="HE_EQUALS_USE_HASHCODE",
justification="I know what I'm doing")
FindBugsのため、3.0.0 SuppressWarnings
が原因でJavaの@SuppressFBWarnings
と名前の衝突のSuppressWarnings
の賛成で廃止されていることに注意してください。
他のヒント
他の人が述べたように、あなたは@SuppressFBWarnings
アノテーションを使用することができます。
あなたがしたくないか、あなたのコードに別の依存関係を追加することができない場合、あなたはあなたのコードに自分自身を注釈を追加することができ、FindBugsのは注釈があるパッケージに注意してdosn'tます。
@Retention(RetentionPolicy.CLASS)
public @interface SuppressFBWarnings {
/**
* The set of FindBugs warnings that are to be suppressed in
* annotated element. The value can be a bug category, kind or pattern.
*
*/
String[] value() default {};
/**
* Optional documentation of the reason why the warning is suppressed
*/
String justification() default "";
}
ソース: https://sourceforge.net/p/findbugs/feature -requests / 298 /#5e88する
ここで(それだけでスニペットを示し、<FindBugsFilter>
開始タグと終了タグの不足しているので、それ自体で上記の例では動作しません)XMLフィルタのより完全な例です。
<FindBugsFilter>
<Match>
<Class name="com.mycompany.foo" />
<Method name="bar" />
<Bug pattern="NP_BOOLEAN_RETURN_NULL" />
</Match>
</FindBugsFilter>
あなたは[ファイル]を使用して、XMLフィルタファイルを参照し、AndroidのメーカーFindBugsのプラグインを使用している場合>その他の設定]> [デフォルト設定] - > [その他設定 - > FindBugsの-IDEA->フィルタ - >除外フィルターファイル - >を追加します。
更新Gradle
dependencies {
compile group: 'findbugs', name: 'findbugs', version: '1.0.0'
}
をFindBugs報告書
file:///Users/your_user/IdeaProjects/projectname/build/reports/findbugs/main.html
の特定のメッセージ
輸入は正しいバージョンのアノテーション
import edu.umd.cs.findbugs.annotations.SuppressWarnings;
追加のアノテーションを直接上記に違反したコード
@SuppressWarnings("OUT_OF_RANGE_ARRAY_INDEX")
は、こちらをご参照詳細情報: findbugs春ン
私はここにこの1を残すつもりです: https://stackoverflow.com/a/14509697/1356953する
これはjava.lang.SuppressWarnings
soで別のアノテーションを使用する必要が働かないことに注意してください。
フィールド上の@SuppressWarningsはFindBugsの警告を抑制し そのフィールドの宣言ではなく、関連付けられたすべての警告について報告 そのフィールドます。
これは、例えば、「フィールドのみがこれまでにnullに設定されている」抑制します 警告:
@SuppressWarnings( "UWF_NULL_FIELD")文字列S = NULL;私は最高だと思います あなたが行うことができ、最小に警告してコードを分離です 方法あなたは、その後、全体の方法で警告を抑制することができます。