6

私は現在、nullを取ることができ、次のSuppressWarning注釈を含むコンストラクタを持つEnumを持っています:

@SuppressWarnings("all")
public enum TheEnum {
...
AN_ENUM_VALUE(null),
...
...
private TheEnum(TheEnum ... args) {
    if (args != null){
        ...
        ...
    }
...
}

私は現在 MyEclipse ワークベンチ 10.6 を使用していますが、注釈をうまく取得しているようです。ただし、開発マシンでのコンパイル中に、「TheEnum」クラスに関連する警告が表示されます。

奇妙なことに、プロジェクト内には @SuppressWarnings("unchecked") がいたるところにあり、コンパイラはこれらを拾い上げて無視することができます。

レガシーの問題のため、JDK 1.5.0_17 を使用してコンパイルする必要がありますが、「すべて」の抑制を選択する必要があるようです。

[root@xxx]:/opt/jdk1.5.0_17/bin# ./javac -X
  ...
  -Xlint:{all,deprecation,unchecked,fallthrough,path,serial,finally,-deprecation,-   unchecked,-fallthrough,-path,-serial,-finally}Enable or disable specific warnings

「すべて」が無視されている理由を確認するためにどこを見ればよいかについての提案はありますか?

4

1 に答える 1

-2

そもそも使わない。

@SuppressWarnings("all")

あなたは何か間違ったことをしていると言います。このようなコードを開発している開発者との契約はできるだけ早くキャンセルします。警告には理由があり、ブランケット無視は「自分のコードが実際に機能するかどうかはどうでもいい」と言います。これは、単体テストを書くこととは正反対です。つまり、コンパイラ チェックを一括で無効にします。

http://docs.oracle.com/javase/6/docs/technotes/tools/solaris/javac.html#options "all"から判断すると、Eclipse 拡張機能である可能性があります。Sun/Oracle Java 6 コンパイラは、おそらく次の値のみをサポートします: uncheckedpathserial、および。finallyfallthroughdeprecation

于 2012-12-05T19:00:08.373 に答える