2011-05-31 10 views
5

¿Hay objetos creados con respecto a cada una de las constantes enum ARROGANT, RASCAL, IDIOT?java enum tipo instanciation

public enum Manager { 
    ARROGANT, 
    RASCAL, 
    IDIOT 
} 

y si el siguiente código hace lo mismo que el anterior, aunque de forma explícita,

public enum Manager { 
    ARROGANT(), 
    RASCAL(), 
    IDIOT(); 

    Manager() {} 
} 
+0

Nota: no necesita el constructor en el segundo código. –

Respuesta

6

Sí, se creará exactamente una instancia para cada constante de enumeración.

Y sí, el segundo código de muestra es efectivamente idéntico.

4

Sí, ambos deberían dar como resultado el mismo código de bytes, el primero es solo azúcar sintáctico.

El segundo es útil cuando tiene que asociar valores con una enumeración.

enum Numbers{ 
    ONE(1),TWO(2),THREE(3),TEN(10); 
    Numbers(int i){ 
     value = i; 
    } 
    public final int value; 
}