2010-10-30 6 views
11

Je souhaite stocker un nom de liste et des surnoms individuels pour chaque nom en tant que Enum dans Java. Le nombre de surnoms ne variera pas. Le but est de pouvoir obtenir un nom complet à partir d'un surnom. À l'heure actuelle, je l'ai mis en œuvre ce comme ceci:Java - Enum avec champ de tableau

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 
    } 
} 

Je n'aime bien avoir à répéter new String[] {...}, alors je me demandais si quelqu'un pourrait proposer une alternative, plus concise, la méthode de la mise en œuvre de cette?

Cheers,

Pete

Répondre

30

Les paramètres vararg:

private Names(String... nicknames) { 

Vous pouvez maintenant appeler constructeur sans tableau créer explicitement:

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

Details (voir « arbitraire Nombre d'arguments "section)