SuppressWarnings
検証環境
Checkstyleバージョン:10.3.3
Javaバージョン:17
チェック概要
チェック追加バージョン |
---|
Checkstyle 5.0 |
SuppressWarningsが抑制できない警告を指定する。
設定された警告を抑制できないトークンのリストを指定することもできる。
このチェックでは、@SuppressWarningsアノテーションの属性内に記述された条件文は考慮されない。
デフォルトではtokensプロパティによって指定されない限り、全てのトークンでSuppressWarningsでの警告抑制が禁止される。
プロパティ
プロパティ | 型 | デフォルト値 | 説明 | 追加バージョン |
---|---|---|---|---|
format | Pattern | "^\s*+$" |
警告抑制を禁止させたい正規表現 | 5.0 |
tokens | トークンの サブセット | CLASS_DEF, INTERFACE_DEF, ENUM_DEF, ANNOTATION_DEF, ANNOTATION_FIELD_DEF, ENUM_CONSTANT_DEF, PARAMETER_DEF, VARIABLE_DEF, METHOD_DEF, CTOR_DEF, COMPACT_CTOR_DEF, RECORD_DEF |
チェック対象のトークン | 5.0 |
〇 トークンのサブセットには以下の値が設定可能
値 | 説明 |
---|---|
ANNOTATION_DEF | アノテーション宣言 |
ANNOTATION_FIELD_DEF | アノテーションフィールドの宣言 |
CLASS_DEF | クラス宣言 |
COMPACT_CTOR_DEF | 引数なしコンストラクタ宣言 |
CTOR_DEF | コンストラクター宣言 |
ENUM_CONSTANT_DEF | Enum定数宣言 |
ENUM_DEF | enum宣言 |
INTERFACE_DEF | インターフェイス宣言 |
METHOD_DEF | メソッド宣言 |
PARAMETER_DEF | パラメータ宣言 |
RECORD_DEF | レコード宣言 |
VARIABLE_DEF | フィールドまたはローカル変数の宣言 |
設定+チェック実行結果
プロパティ設定なし
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="SuppressWarnings"/> </module> </module>
チェック実行例
デフォルトの設定ではSuppressWarningsで警告を抑制するとチェックNGとなる。
public class MyClass { // NG @SuppressWarnings("unused") DataLoader loader; // NG @SuppressWarnings("unchecked") DataLoader loader; // NG @SuppressWarnings("unused") public int foo() { return 1; } }
プロパティ設定あり
format
SuppressWarningsで警告抑制するのを許可しないパターンを指定する。
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name = "SuppressWarnings"> <property name="format" value="^unchecked$"/> </module> </module> </module>
チェック実行例
uncheckedを抑制しているSuppressWarningsはチェックNGとなる。
public class MyClass { // OK @SuppressWarnings("unused") DataLoader loader; // NG @SuppressWarnings("unchecked") DataLoader loader; // OK @SuppressWarnings("unused") public int foo() { return 1; } }
tokens
チェック対象のトークンをコンマ区切りで記述する。
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name = "SuppressWarnings"> <property name="tokens" value="METHOD_DEF"/> </module> </module> </module>
チェック実行例
メソッド宣言のみがチェック対象となる。
public class MyClass { // OK @SuppressWarnings("unused") DataLoader loader; // OK @SuppressWarnings("unchecked") DataLoader loader; // NG @SuppressWarnings("unused") public int foo() { return 1; } }