3

どちらが良いですか?

  1. @SuppressWarnings("unchecked")
  2. @SuppressWarnings(AnnotationConstants.UNCHECKED)

AnnotationConstants典型的な定数クラスはどこにありますか...

public final class AnnotationConstants {
    private AnnotationConstants() { }

    public static final String UNCHECKED = "unchecked";

    ...
}

定数クラスには賛否両論の一般的な議論がたくさんあることは知っていますが、それはまさに私が興味を持っていないことです。特に注釈用の定数クラスが良い考えか悪い考えかを知りたいです。

4

4 に答える 4

6

この特定の例では、リテラルに固執します。結局のところ、警告を抑制しようとしているのです。間違ったリテラルを使用すると、警告が抑制されず、問題に注意を向けることになります。

于 2009-03-10T17:57:36.213 に答える
3

両方とも少しお願いします。

Spring では、@Scope(Scopes.SESSION) や @Scope(Scopes.REQUEST) のように、特定の種類の動作をアノテーションに関連付けることができるので、トレーサビリティに適した定数クラスを常に使用することをお勧めします。 .

警告を単に抑制している場合は、これを実際にトレースする可能性はほとんどないため、リテラルをそのまま使用してください。

于 2009-03-10T18:08:10.167 に答える
2

SuppressWarnings について Holsam に同意します - 文字列を使用します

独自の注釈を作成している場合は、一連の定数として表すことができるものに対して、可能な場合は列挙型を使用することをお勧めします

于 2009-03-10T19:58:04.863 に答える
0

などについて@SuppressWarningは、そうは思いません。私は定数を直接書くことを好み、可能であればコンパイラーにそれらをチェックさせます。Eclipse はその点でうまく機能します。

于 2009-03-10T17:56:24.157 に答える