2011-09-12 15 views
24

Quiero descartar algunos, pero no todos los posibles valores de enumeración.¿Es posible desaprobar algunos de los valores de una enumeración Java y, de ser así, cómo?

+0

Ver [tutorial de anotaciones] (http://download.oracle.com/javase/tutorial/java/javaOO/annotations.html). – mre

+4

¿Qué tan difícil es escribir "@Deprecated" delante de uno de sus valores enum? – Bombe

+10

@Bombe, por favor no llame a nuevos programadores por no saber algo que es simple a sus ojos. – Jesper

Respuesta

45

Sí, ponga una anotación @Deprecated en ellas. Por ejemplo:

enum Status { 
    OK, 
    ERROR, 

    @Deprecated 
    PROBLEM 
} 

También puede agregar una etiqueta JavaDoc @deprecated documentarla:

enum Status { 
    OK, 
    ERROR, 

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

Siempre me he preguntado (de vez en cuando) por qué el tipo de anotación '@ Deprecated' no permite un' valor' para ese fin. – Barend

+1

"No utilizar este valor" es un comentario inútil. No dice nada más que la anotación desaprobada. Un comentario de desaprobación debe indicar por qué se reemplaza el valor. –

+0

@JB Nizet, por supuesto, esto fue solo para demostrar el principio. Lo cambie. – Jesper

4

acaba de intentar que Eclipse, que funciona (no lo intentas?):

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, para la referencia de South Park – mre

+31

OH MY GOD! ¡ELLOS DEJARON KENNY! – Bombe

+0

+1 nuevamente por depreciar a Kenny ... – home

Cuestiones relacionadas