Java の @SuppressWarnings は、プログラムの特定の部分に対して指定された警告を抑制するようにコンパイラーに通知するために使用されるアノテーションです。 @SuppressWarnings は組み込みのアノテーションであり、メタデータを表すタグのようなアノテーションであり、追加情報を提供します。警告は良い場合もありますが、不適切で煩わしい場合もあります。その場合、プログラマはそのような警告を抑制するようにコンパイラに通知することがあります。 @SuppressWarnings で指定されたコンパイラ警告は、プログラムの特定の部分を抑制することに注意してください。たとえば、メソッドに指定された警告を抑制するアノテーションが付けられている場合、コンパイラはそのメソッド内でのみ指定された警告を抑制しますが、クラスに指定された警告を抑制するアノテーションが付けられている場合、コンパイラはそのクラス内のメソッド内の指定された警告を抑制します。
無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
Java の @SuppressWarnings アノテーションの構文 –
@SuppressWarnings( "warningOption" )
パラメータ
Java の @SuppressWarnings は、抑制するさまざまな種類の警告のリストをサポートしています。 Eclips および Netbean IDE は、標準の javac コンパイラ警告オプション以上のものをサポートしています。 @SuppressWarnings による警告オプションのサポートのリストは、未チェック、非推奨、シリアル、オーバーライド、キャスト、divzero、空、フォールスルー、パス、最終的に、およびすべてです。
作業と例を以下に示します:
次に、@SuppressWarnings アノテーションをより明確に理解するための Java コードを作成します。以下の例では、@SuppressWarnings を使用して未チェックの警告を抑制します。
コード:
//package demo; import java.util.ArrayList; import java.util.List; public class Main { @SuppressWarnings("unchecked") // also can be write as @SuppressWarnings(value = "unchecked") public static void main( String[] arg) { List fruits = new ArrayList(); // this causes unchecked warning fruits.add("Apple"); System.out.println( fruits); } }
出力:
説明: 上記のコードと同様に、@SuppressWarnings アノテーションは main() メソッドに @SuppressWarnings(“unchecked”) としてアノテーションが付けられます。抑制される警告はチェックされていません。これで内部のすべてのコードが警告されます。 main() メソッドも適用されます。したがって、コンパイラはこの行「fruits.add(“Apple”)」に関する警告を発行しなくなりました。生の型付きコレクションを使用しているためです。コードと同様に、@SuppressWarnings アノテーションを使用して、その警告を修正しません。上記のコードで、@SuppressWarnings アノテーションを使用しない場合、行「fruits.add(“Apple”);」
次に、@SuppressWarnings アノテーションをより明確に理解するための Java コードを作成します。以下の例では、@SuppressWarnings を使用して非推奨警告を抑制します。
コード:
//package demo; import javax.swing.JFrame; public class Demo { @SuppressWarnings("deprecation") // also can be write as @SuppressWarnings(value = "deprecation") public static void main( String[] arg) { JFrame dlog = new JFrame(); dlog.setTitle("This is demo"); // this generate the deprecated warning as it is a deprecated method // JDK version 1.7 replace it by setVisible() method dlog.show(); dlog.setSize(500, 500); // so use the new version method dlog.setVisible(true); } }
出力:
説明: 上記のコードのように、@SuppressWarnings アノテーションは main() メソッドに @SuppressWarnings(“deprecation”) としてアノテーションが付けられており、抑制される警告は非推奨警告です。したがって、コンパイラはこの行「dlog.show();」に関する警告を発行しなくなりました。これは、このメソッドが setVisible() メソッドによって Swing API で非推奨になっているためです。コードと同様に、@SuppressWarnings アノテーションを使用して警告を修正しません。
次に、@SuppressWarnings アノテーションを理解するための Java コードを作成します。以下のように、@SuppressWarnings を使用してクラス レベルで非推奨警告を抑制します。
コード:
//package demo; import javax.swing.JFrame; @SuppressWarnings("deprecation") public class Demo { // also can be write as @SuppressWarnings(value = "deprecation") public static void main( String[] arg) { JFrame dlog = new JFrame(); dlog.setTitle("This is demo"); // this generate the deprecated warning as it is a deprecated method // JDK version 1.7 replace it by setVisible() method dlog.show(); dlog.setSize(500, 500); // so use the new version method dlog.setVisible(true); } public void anotherMethod() { JFrame dlog = new JFrame(); dlog.setTitle("This is demo"); dlog.show(); } }
出力:
説明: 上記のコードと同様、@SuppressWarnings アノテーションは @SuppressWarnings(“deprecation”) としてクラスにアノテーションが付けられます。これは、クラス内のすべてのメソッドにも警告の非推奨が適用されることを意味します。これにより、コンパイラは両方のメソッド行「dlog.show();」で警告を発行しなくなります。
上記のコードの main() メソッド レベルで @SuppressWarnings アノテーションを使用すると、以下の画像で明らかなように、anotherMethod() メソッドに警告メッセージが表示されます。
次に、@SuppressWarnings アノテーションを理解するための Java コードを作成します。ここでは、以下のように @SuppressWarnings を使用して複数の警告を抑制します –
コード:
//package demo; import java.util.ArrayList; import java.util.List; import javax.swing.JFrame; public class Demo { @SuppressWarnings({"unchecked","deprecation"}) // also can be write as @SuppressWarnings(value={"unchecked","deprecation"}) public static void main( String[] arg) { JFrame dlog = new JFrame(); List title = new ArrayList(); // this causes unchecked warning title.add("This is demo"); dlog.setTitle(title.toString()); // this generate the deprecated warning as it is a deprecated method // JDK version 1.7 replace it by setVisible() method dlog.show(); dlog.setSize(500, 500); // so use the new version method dlog.setVisible(true); } }
出力:
説明: 上記のコードと同様、@SuppressWarnings アノテーションは main() メソッドに @SuppressWarnings({“unchecked”, “deprecation”}) として注釈され、複数の警告を抑制または無視します。 「未チェック」および「非推奨」。これは、コンパイラーが「未チェック」および「非推奨」に関連する警告を発行しないことを意味します。
@SuppressWarning は、アノテーションが付けられているプログラムの特定の部分に対して指定された警告を無視するようにコンパイラーに通知する Java のアノテーションです。
以上がJava の @SuppressWarningsの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。