Java の基本 - よく使用されるアノテーション @SuppressWarings
記事ディレクトリ
I. 概要
java.lang.SuppressWarnings は、J2SE5.0 の標準アノテーションの 1 つです。クラス、フィールド、メソッド、コンストラクター、ローカル変数にマークを付けることができます。
@SuppressWarings 関数: コンパイル完了後に警告メッセージが表示されないように、指定された警告を無視するようにコンパイラーに指示します。
@SuppressWarings は以下を使用します。
- @SuppressWarnings("")
- @SuppressWarnings({})
- @SuppressWarnings(値={})
value - アノテーションが付けられた要素内でコンパイラーによって抑制される一連の警告。重複した名前は許可されます。2 回目以降の名前は無視されます。認識されない警告名が発生してもエラーではありません。コンパイラは、認識されない警告名を無視する必要があります。ただし、コメントに認識できない警告名が含まれている場合、コンパイラーは自由に警告を発行できます。
コンパイラ ベンダーは、注釈の種類とともにサポートする警告名を文書化する必要があります。ベンダーは、複数のコンパイラ間で同じ名前が使用されるように相互に協力することが推奨されます。
一般的な注釈のデモンストレーション:
-
@SuppressWarnings(“未チェック”)
パラメーター化せずに List や ArrayList などを使用して生成された警告情報など、チェックされていない警告情報を無視するようにコンパイラーに指示します。
-
@SuppressWarnings(“シリアル”)
無視するようにコンパイラーに指示します。直列化可能クラス WmailCalendar は、long 型情報の静的な最終のserialVersionUIDフィールドを宣言しません。
-
@SuppressWarnings(「非推奨」)
アノテーション @Deprecated を使用して、警告メッセージを無視するようにコンパイラーに指示します。
-
@SuppressWarnings(“未チェック”, “非推奨”)
未チェックの警告メッセージと非推奨の警告メッセージの両方を無視するようにコンパイラに指示します。
2. @SuppressWarings アノテーションの使用
2.1. 単一タイプの警告を抑制する
@SuppressWarnings("unchecked")
public void annotationDemo(String item){
@SuppressWarnings("rawtypes")
List items = new ArrayList();
items.add(item);
}
2.2. 複数の種類の警告の抑制
@SuppressWarnings(value={
"unchecked", "rawtypes"})
public void annotationDemo(String item){
List items = new ArrayList();
items.add(item);
}
2.3. あらゆる種類の警告を抑制する
@SuppressWarnings(value={
"all"})
public void annotationDemo(String item){
List items = new ArrayList();
items.add(item);
}
4. アノテーションの目標
@SuppressWarnings のソースコードを見ると、そのアノテーションの対象がクラス、フィールド、関数、関数パラメータ、コンストラクタ、関数のローカル変数であることがわかります。
注釈は、警告が発生する場所の最も近くに宣言することをお勧めします。
5. 警告を抑制するキーワード
順序 | キーワード | 説明する |
---|---|---|
1 | 全て | すべての警告を抑制するには (すべての警告を抑制します) |
2 | ボクシング | ボックス化/ボックス化解除操作に関する警告を抑制します (ボックス化およびボックス化解除操作時の警告を抑制します) |
3 | キャスト | キャスト操作に関する警告を抑制します (マッピング関連の警告を抑制します)。 |
4 | デプアン | 非推奨のアノテーションに関する警告を抑制するには |
5 | 非推奨 | 非推奨に関する警告を抑制する (期限切れのメソッドの警告を抑制する) |
6 | フォールスルー | switch ステートメントのブレークの欠落に関する警告を抑制します (switch のブレークの欠落に関する警告を抑制します)。 |
7 | ついに | 返されない、finally ブロックに関する警告を抑制します (finally モジュールが返さないという警告を抑制します)。 |
8 | 隠蔽 | 変数を非表示にするローカルに関する警告を抑制するには |
9 | 不完全な切り替え | switch ステートメント内の欠落しているエントリ (列挙型の場合) に関する警告を抑制します (不完全な switch ステートメントは無視します)。 |
10 | NLS | 非 NLS 文字列リテラルに関する警告を抑制します (非 NLS 形式の文字を無視します)。 |
11 | ヌル | null 分析に関する警告を抑制します (null に対する操作を無視します)。 |
12 | rawtype | クラスパラメータでジェネリックスを使用する場合に、不特定の型に関する警告を抑制します (ジェネリックスを使用する場合は、対応する型を無視します)。 |
13 | 制限 | 推奨されない参照または禁止された参照の使用に関する警告を抑制する |
14 | シリアル | 直列化可能クラスの欠落しているserialVersionUIDフィールドに関する警告を抑制します(直列化可能クラスでserialVersionUID変数が宣言されていないことを無視します) |
15 | 静的アクセス | 不正な静的アクセスに関する警告を抑制する (不正な静的アクセスの警告を抑制する) |
16 | 合成アクセス | 内部クラスからの最適化されていないアクセスに関する警告を抑制します (サブクラスが最適な方法で内部クラスにアクセスしないという警告を抑制します)。 |
17 | チェックされていない | 未チェックの操作に関する警告を抑制します (型チェックされた操作を実行しない警告を抑制します)。 |
18 | 無修飾フィールドアクセス | 修飾されていないフィールド アクセスに関する警告を抑制します (アクセス権限のないドメインに対する警告を抑制します)。 |
19 | 未使用 | 未使用のコードに関する警告を抑制します (未使用のコードに関する警告を抑制します)。 |