Javaでの@SuppressWarnings(「チェックなし」)の役割
Role Suppresswarnings Java
はじめに:java.lang.SuppressWarningsは、J2SE5.0の標準アノテーションの1つです。クラス、フィールド、メソッド、パラメーター、構築メソッド、およびローカル変数にマークを付けることができます。
機能:指定された警告を無視するようコンパイラーに指示してください。コンパイルが完了した後、警告メッセージは表示されません。
使用する:
@SuppressWarnings(“”)
@SuppressWarnings({})
@SuppressWarnings(value = {})
サンの公式文書の説明によると:
value-コメント付き要素でコンパイラーによって抑制される警告のセット。重複する名前は許可されます。 2番目以降の名前は無視してください。認識されない警告名はエラーではありません。コンパイラーは、認識されないすべての警告名を無視する必要があります。ただし、コメントに認識されない警告名が含まれている場合、コンパイラーは自由に警告を発行できます。
コンパイラベンダーは、サポートする警告名をコメントタイプとともに記録する必要があります。複数のコンパイラで同じ名前が使用されるように、ベンダー間の協力を奨励してください。
例:
@SuppressWarnings( 'unchecked')
List、ArrayListなどを使用してパラメーター化されていない警告メッセージなど、チェックされていない警告メッセージを無視するようにコンパイラーに指示します。
@SuppressWarnings(“ serial”)
コンパイラがそのような警告メッセージを表示する場合:シリアル化可能なクラスWmailCalendarは、long型の静的最終serialVersionUIDフィールドを宣言しません。このコメントを使用して、警告メッセージを削除します。
@SuppressWarnings(“ deprecation”)
@Deprecatedアノテーションが付けられたメソッドが使用される場合、コンパイラーは警告メッセージを表示します。このコメントを使用して、警告メッセージを削除します。
@SuppressWarnings( 'unchecked'、 'deprecation')
チェックされていない警告メッセージと非推奨の警告メッセージの両方を無視するようにコンパイラーに指示します。
@SuppressWarnings(value = {“ unchecked”、“ deprecation”})
に相当
@SuppressWarnings( 'unchecked'、 'deprecation')
コーディングすると、次の変数が使用されていないという警告が常に表示されます。
上記のコードはコンパイルされて実行できますが、各行の前にある「感嘆符」は、その行がブレークポイントであるかどうかを判断するのを著しく妨げます。現時点では、メソッドの前に@SuppressWarnings( 'unused')を追加して、これらの '感嘆符'を削除できます。
2. @ SuppressWaringsアノテーション
機能:コンパイラが警告メッセージを生成するのを抑制するために使用されます。
例1-単一タイプの警告を抑制します。
@SuppressWarnings('unchecked') public void addItems(String item){ @SuppressWarnings('rawtypes') List items = new ArrayList() items.add(item) }
例2-複数のタイプの警告を抑制します。
@SuppressWarnings(value={'unchecked', 'rawtypes'}) public void addItems(String item){ List items = new ArrayList() items.add(item) }
例3-すべてのタイプの警告を抑制します。
@SuppressWarnings('all') public void addItems(String item){ List items = new ArrayList() items.add(item) }
3、ターゲットに注釈を付けます
@SuppressWarningsのソースコードによると、アノテーションのターゲットは、クラス、フィールド、関数、関数パラメーター、コンストラクター、および関数のローカル変数です。
家族は、コメントが警告に最も近い位置で宣言されるべきであることを推奨します。
4、警告キーワードを抑制します
キーワード | 使用する |
---|---|
すべて | すべての警告を抑制する |
ボクシング | ボックス化/ボックス化解除操作に関連する警告を抑制するため(ボックス化/ボックス化解除操作に関連する警告を抑制するため) |
キャスト | キャスト操作に関連する警告を抑制するため(キャスト操作に関連する警告を抑制するため) |
dep-ann | 非推奨の注釈に関連する警告を抑制する(非推奨の注釈に関連する警告を抑制する) |
非推奨 | 非推奨に関連する警告を抑制する(非推奨に関連する警告を抑制する) |
フォールスルー | switchステートメントの欠落しているブレークに関連する警告を抑制する(switchステートメントでは、欠落しているブレークに関連する警告を抑制する) |
最後に | 戻らないfinallyブロックに関連する警告を抑制する(戻らないfinallyブロックに関連する警告を抑制する) |
隠蔽 | 変数を非表示にするローカルに関連する警告を抑制する(ローカルの隠れた変数の警告を抑制するため) |
不完全なスイッチ | switchステートメントの欠落したエントリに関連する警告を抑制する(列挙型の場合)(switchステートメントの欠落したエントリに関連する警告を抑制するため(列挙型の場合)) |
nls | nls以外の文字列リテラルに関連する警告を抑制する(nls以外の文字列リテラルに関連する警告を抑制する) |
ヌル | null分析に関連する警告を抑制するため(null分析に関連する警告を抑制するため) |
rawtypes | クラスパラメータでジェネリックを使用するときに非特定の型に関連する警告を抑制する(クラスパラメータでジェネリックを使用する場合、非特定の型に関連する警告を抑制する) |
制限 | 推奨されていない参照または禁止されている参照の使用に関連する警告を抑制するため(警告または禁止されている参照の使用を禁止されている) |
シリアル | シリアライズ可能なクラスの欠落しているserialVersionUIDフィールドに関連する警告を抑制するため(シリアライズ可能なクラスの場合、欠落しているserialVersionUIDフィールドに関連する警告を抑制するため) |
静的アクセス | o誤った静的アクセスに関連する警告を抑制します(o誤った静的アクセスに関連する警告を抑制します) |
合成アクセス | 内部クラスからの最適化されていないアクセスに関連する警告を抑制するため(警告を抑制するための内部クラスの最適化されていないアクセスに関連して) |
未チェック | チェックされていない操作に関連する警告を抑制する(チェックされていない操作に関連して、警告を抑制する) |
unqualified-field-access | 修飾されていないフィールドアクセスに関連する警告を抑制するため(フィールドアクセスに関連する警告を抑制するため) |
未使用 | 未使用のコードに関連する警告を抑制する(未使用のコードの警告を抑制する) |
5、JavaLintオプション
- 糸くずの意味
プログラムのコンパイル中に、より詳細な追加チェックを実行するために使用されます。
javacの標準および非標準オプション
標準オプション:-cpや-dなど、現在のバージョンと将来のバージョンでサポートされるオプションを参照してください。
非標準オプション:現在のバージョンでサポートされているが、将来サポートされない可能性のあるオプションを参照してください。 javac -Xを使用して、現在のバージョンでサポートされている非標準オプションを表示します。
3.警告メッセージを表示します
デフォルトでは、javacを実行すると、警告の簡単な情報のみが表示され、コンパイルプロセスも防止されます。警告の詳細情報を表示したい場合は、javac -Xlint:keywordを実行してソースコードをコンパイルする必要があります。