PMDでは、特定の警告を無視する場合、// NOPMD
を使用してその行を無視できます。
FindBugsに似たようなものはありますか?
FindBugsの初期アプローチには、XML構成ファイル、つまり filters が含まれます。これはPMDソリューションよりも実際には便利ではありませんが、FindBugsはソースコードではなくバイトコードで動作するため、コメントは明らかにオプションではありません。例:
<Match>
<Class name="com.mycompany.Foo" />
<Method name="bar" />
<Bug pattern="DLS_DEAD_STORE_OF_CLASS_LITERAL" />
</Match>
ただし、この問題を解決するために、FindBugsは後で annotations ( SuppressFBWarnings
を参照)に基づく別のソリューションを導入しました。これはクラスまたはメソッドレベルで使用できます(XMLよりも便利です)私の考えでは)。例(最良のものではないかもしれませんが、それは単なる例です):
@edu.umd.cs.findbugs.annotations.SuppressFBWarnings(
value="HE_EQUALS_USE_HASHCODE",
justification="I know what I'm doing")
FindBugs 3.0.0以降、SuppressWarnings
はJavaのSuppressWarnings
と名前が衝突するため、@SuppressFBWarnings
の代わりに廃止されました。
他の人が言及したように、@SuppressFBWarnings
注釈を使用できます。コードに別の依存関係を追加したくない、または追加できない場合は、アノテーションを自分でコードに追加できます。Findbugsは、アノテーションがどのパッケージであるかを気にしません。
@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
次に、XMLフィルタのより完全な例を示します(上記の例は、スニペットを示しているだけで、<FindBugsFilter>
の開始タグと終了タグがないため、単独では機能しません):
<FindBugsFilter>
<Match>
<Class name="com.mycompany.foo" />
<Method name="bar" />
<Bug pattern="NP_BOOLEAN_RETURN_NULL" />
</Match>
</FindBugsFilter>
Android Studio FindBugsプラグインを使用している場合、File-> Other Settings-> Default Settings-> Other Settings-> FindBugs-IDEA-> Filter-> Exclude filter files-を使用してXMLフィルターファイルを参照します- >追加。
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 Spring Annotation