web-dev-qa-db-ja.com

不要な@SuppressWarnings( "unused")

コードのEclipseで_@SuppressWarnings_注釈のコンパイラ警告が表示されます。

_@Override
public boolean doSomething(@SuppressWarnings("unused") String whatever) throws AnException {
    throw new AnException("I'm still in bed and can't do anything until I've had a shower!");
}
_

「未使用」という単語の下の黄色の波線のように見え、マウスをホバーするとツールチップUnnecessary @SuppressWarnings("unused")が表示されます。

別の開発者がEclipseによってこれらの注釈を入力するように求められていると思いますが、基本的にそれらを取り出すように求められています。文句を言う代わりに_@SuppressWarnings_注釈を挿入するように促すようにEclipseを構成するにはどうすればよいですか?

ここでベストプラクティスについてコメントしたい場合は、それも大歓迎です。

53
Edd

質問のコードでは、メソッドがスーパークラスの別のメソッドをオーバーライドするか、インターフェースを実装するため、@SuppressWarnings("unused")注釈は不要です。実際にwhateverパラメータを使用しない場合でも、宣言する必要があります。そうしないと、_@Override_アノテーションはエラーを生成します(パラメータ。)

Eclipseの一部の古いバージョンでは、示されているコードは警告を表示しませんが、最近のリリースでは表示されます。これは有効な警告だと思うので、この場合は@SuppressWarnings("unused")を削除したいです。

53
Óscar López

に行く

WindowPreferencesJava コンパイラエラー/警告アノテーション

そしてIgnore for Unused '@ SuppressWarnings` token

23
aioobe

私のコードでは、@ SuppressWarnings( "unused")で3つのメソッドを定義する継承はありません。

このコードは、Eclipse Juno(最新バージョン)で「不要な@SuppressWarnings( "unused")」を提供しますが、@ SuppressWarnings( "unused")を削除すると、IntelliJ IDEA 11.1.3

メソッドはプロジェクトで直接使用されるのではなく、ジャクソン、JAXB、GSONのサードパーティ製品によってのみ使用されるため、IntelliJは正しいと言えます。

public class EmailUnsendable extends SkjemaError {

    private NestedCommand command;        // Can't be Command (interface) because of GSON!

    @SuppressWarnings("unused")            // Used by Jackson/JAXB/GSON
    public EmailUnsendable() {
    }

    public EmailUnsendable(String referenceNumber, String stackTrace, NestedCommand command) {
        super(referenceNumber, stackTrace);
        this.command = command;
    }

    @SuppressWarnings("unused")            // Used by Jackson/JAXB/GSON
    public NestedCommand getCommand() {
        return command;
    }

    @SuppressWarnings("unused")            // Used by Jackson/JAXB/GSON
    public void setCommand(NestedCommand command) {
        this.command = command;
    }
}

これはEclipseのエラーだと思います。

5

または、SuppressWarnings注釈を削除する方が正しいと思われる場合:

ウィンドウ->設定-> Java->コンパイラ->エラー/警告->不要なコード->パラメータの値は使用されません

メソッドのオーバーライドと実装では無視を選択します

5
David Carboni