2010-03-22 12 views

Respuesta

16

Esto no es posible con Java, ya que cada elemento tiene que ser un identificador válido (y los identificadores de Java válidos pueden no contener guiones).

Lo más cercano sería la adición de una propiedad personalizada a cada valor de enumeración o reemplazar el método toString, por lo que se puede hacer lo siguiente:

Test.EMPLOYEE_ID.getRealName() //Returns "employee-id" 

public enum Test 
    EMPLOYEE_ID("employee-id"); 

    private Test(String realName) { 
     this.realName = realName; 
    } 
    public String getRealName() { 
     return realName; 
    } 
    private final String realName; 
} 
+3

Y use mayúsculas para las constantes enum. –

+1

Debe hacer realName final. –

0

no se puede declarar la constante de enumeración con un guión. Si el guión se recupera como el valor de la enumeración, debe tener un método de valor en enumeración que puede usar en su método toString o acceder a este método en la enumeración para obtener el valor de guion

1

No puede hacer esta. Las constantes de Enum deben ser identificadores de Java legales. Los identificadores legales de Java no pueden contener -. Puede usar _ si es un sustituto aceptable.

13

Esto no es específico de enumeraciones. Esto se aplica a todos los identificadores en Java: nombres de clase, nombres de métodos, nombres de variables, etcétera. Los guiones simplemente no están permitidos. Puede encontrar todos los caracteres válidos en JLS 3.8.

Para ilustrar el problema:

int num-ber = 5; 
int num = 4; 
int ber = 3; 

System.out.println(num-ber); 

Lo que se puede esperar a pasar aquí?

Cuestiones relacionadas