2010-10-30 13 views
11

साथ Enum मैं जावा में एक Enum के रूप में प्रत्येक नाम के लिए एक सूची के नाम और व्यक्तिगत उपनाम संग्रहीत करना चाहते हैं। उपनाम की संख्या अलग-अलग नहीं होंगे। उद्देश्य एक उपनाम से एक पूरा नाम पाने के लिए सक्षम होने के लिए है। वर्तमान में मैं तो इस तरह लागू किया है:जावा - सरणी क्षेत्र

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

मैं काफी new String[] {...} दोहराने के लिए होने नापसंद है, इसलिए यदि किसी को भी एक विकल्प के अधिक संक्षिप्त, इस क्रियान्वयन विधि को सुझाव है कि हो सकता है मैंने सोचा?

चीयर्स,

पीट

उत्तर

30

Vararg पैरामीटर:

private Names(String... nicknames) { 

अब आप स्पष्ट रूप से सरणी बनाए बिना निर्माता आह्वान कर सकते हैं:

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

Details (मनमानी तर्क की संख्या देख " "खंड)

संबंधित मुद्दे