2011-09-12 13 views
24

Chcę wycofać niektóre, ale nie wszystkie możliwe wartości wyliczenia.Czy możliwe jest wycofanie niektórych wartości wyliczenia Java, a jeśli tak, to w jaki sposób?

+0

Zobacz [Samouczek adnotacji] (http://download.oracle.com/javase/tutorial/java/javaOO/annotations.html). – mre

+4

Jak trudno jest wpisać "@Deprecated" przed jedną z wartości wyliczonych? – Bombe

+10

@Bombe, nie rozpalaj nowych programistów, bo nie wiesz czegoś, co jest proste w twoich oczach. – Jesper

Odpowiedz

45

Tak, umieść na nich adnotację @Deprecated. Na przykład:

enum Status { 
    OK, 
    ERROR, 

    @Deprecated 
    PROBLEM 
} 

Można również dodać JavaDoc @deprecated tag, aby go dokumentu:

enum Status { 
    OK, 
    ERROR, 

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

Zawsze (dobrze, czasami) zastanawiałem się, dlaczego typ adnotacji typu "@ Nieaktualny" nie pozwala na "wartość" do tego celu. – Barend

+1

"Nie używaj tej wartości" jest bezużytecznym komentarzem. Nie mówi nic poza przestarzałą adnotacją. Komentarz o wycofaniu powinien określać, jaka wartość zostanie zastąpiona. –

+0

@JB Nizet to było tylko po to, aby pokazać zasadę. Zmieniłem to. – Jesper

4

prostu próbowałem to zaćmienie, to działa (nie spróbować?):

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, Dla odniesienia do South Park – mre

+31

OH MY GOD! OBLICZAMY KENNY! – Bombe

+0

+1 ponownie za wycofanie Kenny'ego ... – home

Powiązane problemy