広告

Java : @SuppressWarnings (アノテーション) - API使用例

SuppressWarnings (Java SE 20 & JDK 20) の使用例まとめです。
だいたいのメソッドを網羅済みです。
API仕様のおともにどうぞ。


概要

注釈付き要素内のコンパイル時および注釈付き要素に含まれるすべての要素で抑制される警告を示します。

クラス構成

@SuppressWarnings アノテーションは、コンパイル時の警告を抑止するために使います。
指定できるパラメータは4つあります。

ただし、安易に使うことはおすすめしません。
基本的には @SuppressWarnings は使わず、警告が出ないようにコードを修正するのがよいでしょう。

さらに詳細が知りたいかたは、下記の Java 言語仕様もご参照ください。(英語になります)


unchecked

警告が出る例です。

public class Foo {
    // 注意:意図的に List<E> の型パラメータ <E> を省略しています。
    public void m(List list) {
        list.add("aaa");
    }
}

//> javac -Xlint:unchecked Foo.java
//Foo.java:8: 警告: [unchecked] raw型Listのメンバーとしてのadd(E)への無検査呼出しです
//        list.add("aaa");
//                ^
//  Eが型変数の場合:
//    インタフェース Listで宣言されているE extends Object
//警告1個

警告を抑止する例です。

public class Bar {
    @SuppressWarnings("unchecked")
    public void m(List list) {
        list.add("aaa");
    }
}

//> javac -Xlint:unchecked Bar.java
// <エラー、警告なし>

deprecation

警告が出る例です。

@Deprecated
public class Sample {
}
public class Foo {
    public void m() {
        final var sample = new Sample();
        System.out.println(sample);
    }
}

//> javac -Xlint:deprecation Foo.java
//Foo.java:5: 警告: [deprecation] 名前のないパッケージのSampleは推奨されません
//        final var sample = new Sample();
//                               ^
//警告1個

警告を抑止する例です。

public class Bar {
    @SuppressWarnings("deprecation")
    public void m() {
        final var sample = new Sample();
        System.out.println(sample);
    }
}

//> javac -Xlint:deprecation Bar.java
// <エラー、警告なし>

removal

警告が出る例です。

@Deprecated(forRemoval = true)
public class Sample {
}
public class Foo {
    public void m() {
        final var sample = new Sample();
        System.out.println(sample);
    }
}

//> javac Foo.java
//Foo.java:5: 警告: [removal] 名前のないパッケージのSampleは推奨されておらず、削除用にマークされています
//        final var sample = new Sample();
//                               ^
//警告1個

警告を抑止する例です。

public class Bar {
    @SuppressWarnings("removal")
    public void m() {
        final var sample = new Sample();
        System.out.println(sample);
    }
}

//> javac Bar.java
// <エラー、警告なし>

preview

警告が出る例です。

public class Foo {
    public void m() {
        final var t = Thread.ofVirtual();
        System.out.println(t);
    }
}

//> javac --enable-preview --release 20 -Xlint:preview Foo.java
//Foo.java:5: 警告: [preview] ofVirtual()はプレビューAPIであり、今後のリリースで削除される可能性があります。
//        final var t = Thread.ofVirtual();
//                            ^
//警告1個

警告を抑止する例です。

public class Bar {
    @SuppressWarnings("preview")
    public void m() {
        final var t = Thread.ofVirtual();
        System.out.println(t);
    }
}

//> javac --enable-preview --release 20 -Xlint:preview Bar.java
// <エラー、警告なし>

関連記事

ページの先頭へ