2011-09-12 8 views
24

いくつかの可能性のある列挙値をすべて廃止したいと思います。Java enumの値の一部を廃止することはできますか?

+0

[注釈チュートリアル](http://download.oracle.com/javase/tutorial/java/javaOO/annotations.html)を参照してください。 – mre

+4

"@Deprecated"を列挙型の値の前に入力するのはどれほど難しいですか? – Bombe

+10

@Bombeあなたの目にはシンプルなものを知らないために、新しいプログラマーを怒らせてはいけません。 – Jesper

答えて

45

はい、@Deprecated注釈を付けてください。たとえば:

enum Status { 
    OK, 
    ERROR, 

    @Deprecated 
    PROBLEM 
} 

また、それを文書化するのJavaDoc @deprecatedタグを追加することができます。

enum Status { 
    OK, 
    ERROR, 

    /** 
    * @deprecated Use ERROR instead. 
    */ 
    @Deprecated 
    PROBLEM 
} 
+2

私はいつも(時には) '@ Deprecated'アノテーション型がその目的のために' value'を許可しない理由をよく考えました。 – Barend

+1

「この値を使用しないでください」は役に立たないコメントです。非推奨注釈以外は何も言わない。非推奨コメントは、値が置き換えられることによって伝えられます。 –

+0

@JB Nizetこれは原理を証明するためだけのことでした。私はそれを変えた。 – Jesper

4

ただ、それが動作(?あなたはそれを試していない)、それは日食みました:

public class Test { 

    public static void main(String[] arg) { 

     System.err.println(EnumTest.A); 
     System.err.println(EnumTest.B); 

    } 

    public static enum EnumTest { 
     A, @Deprecated B, C, D, E; 
    } 

} 
42
public enum Characters { 
    STAN, 
    KYLE, 
    CARTMAN, 
    @Deprecated KENNY 
} 
+1

+1、サウスパークの参考資料 – mre

+31

OH MY GOD!彼らはケニーを捨てた! – Bombe

+0

Kennyを非難するために+1 – home

関連する問題