2010-10-30 24 views
11

Quiero almacenar nombres de lista y apodos individuales para cada nombre como Enum en Java. El número de apodos no variará. El objetivo es poder obtener un nombre completo de un apodo. Actualmente he implementado este modo:Java - Enum con campo de matriz

public enum Names { 

    ELIZABETH(new String[] {"Liz","Bet"}),  
    ... 
    ; 

    private String[] nicknames; 

    private Names(String[] nicknames) 
    { 
     this.nicknames = nicknames 
    } 


    public Names getNameFromNickname(String nickname) { 
     //Obvious how this works 
    } 
} 

me desagrada bastante tener que repetir new String[] {...}, por lo que se preguntó si alguien podría sugerir una alternativa, más concisa, el método de aplicación de la presente?

Saludos,

Pete

Respuesta

30

parámetros vararg:

private Names(String... nicknames) { 

Ahora se puede invocar el constructor sin crear explícitamente matriz:

ELIZABETH("Liz", "Bet", "another name") 

Details (ver "arbitraria número de argumentos "sección)