複数の@SuppressWarningsアノテーションを組み合わせる-Eclipse Indigo


149

したがって、問題は複数の警告抑制を組み合わせることができるため、各アイテムは独自の@SuppressWarnings注釈を必要としません。

だから例えば:

public class Example
    public Example() {
        GO go = new GO();  // unused
        ....
        List<String> list = ( List<String> ) go.getList(); // unchecked
    }
    ...
    // getters/setters/other methods
}

2つではなく@SuppressWarnings、次のように、これら2つの警告に対してクラスレベルで1つ必要です。

@SuppressWarnings( "unused", "unchecked" )
public class Example
    public Example() {
        GO go = new GO();  // unused - suppressed
        ....
        List<String> list = ( List<String> ) go.getList(); // unchecked - suppressed
    }
    ...
    // getters/setters/other methods
}

しかし、それは有効な構文ではありません。これを行う方法はありますか?


@SuppressWarnings( "unused"、 "unchecked")が機能しない@SuppressWarnings({"unused"、 "unchecked"})に変更してください
Raj

回答:


304

以下を使用します。 @SuppressWarnings({"unused", "unchecked"})


これはEclipseのすべての注釈の通常の規則ですか?
Knowasilya

1
いいえ。これはリストパラメータ用です。SDKを使用してEclipseを実行する場合(またはJavaソースをアタッチする場合)、任意の注釈でF3を押すと、そのソース宣言を確認できます。これにより、必要なパラメーター(およびパラメーター)の数も確認できます。
Bananeweizen 2012年

8
これは、のように配列になりString[] value()ます。リストにはJavaの特別な構文はありませんが、配列は中括弧を使用して定義できます。
Maarten Bodewes 2014

14

アノテーションの内部を見ると、次のことがわかります。

public @interface SuppressWarnings {
    String[] value();
}

あなたが見るように、値のパラメータは文字列の配列です...ので、注釈内のパラメータは、することができ: 値1、値またはVALUE3

final String[] value1 = { "a1" };
final String[] value2 = { "a1", "a2" };
final String[] value3 = { "a1", "a2", "a3" };

つまり:

@SuppressWarnings({"unused"})
@SuppressWarnings({"unused", "javadoc"})

あなたはしばしばのようなものを見ることができません

@SuppressWarnings("unused") 

これは、「{}」なしで1つの要素を許可する特定のケースです

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.