2011-09-12 4 views
24

Voglio deprecare alcuni, ma non tutti i valori di enumerazione possibili.E 'possibile deprecare alcuni dei valori di un envo java e se sì, come?

+0

Vedere il tutorial [Annotazioni] (http://download.oracle.com/javase/tutorial/java/javaOO/annotations.html). – mre

+4

Quanto è difficile scrivere "@Deprecated" davanti a uno dei tuoi valori enum? – Bombe

+10

@Bombe, per favore non scagliare nuovi programmatori per non sapere qualcosa che è semplice nei tuoi occhi. – Jesper

risposta

45

Sì, inserire un'annotazione @Decrecata su di essi. Per esempio:

enum Status { 
    OK, 
    ERROR, 

    @Deprecated 
    PROBLEM 
} 

È possibile anche aggiungere un tag JavaDoc @deprecated di documentarlo:

enum Status { 
    OK, 
    ERROR, 

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

Mi sono sempre chiesto (beh, occasionalmente) perché il tipo di annotazione '@ Deprecato' non permetta un' valore' per quello scopo. – Barend

+1

"Non utilizzare questo valore" è un commento inutile. Non dice altro che l'annotazione deprecata. Un commento di ritiro dovrebbe indicare in base a quale valore viene sostituito. –

+0

@JB Nizet questo era solo per dimostrare il principio. L'ho cambiato. – Jesper

4

appena provato eclissi, funziona (non lo si prova?):

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, per South Park riferimento – mre

+31

OH MIO DIO! HANNO DEPRECATO KENNY! – Bombe

+0

+1 di nuovo per deprecare Kenny ... – home