2011-12-23 538 views
1

我想知道是否可以使用Array作爲常量定義枚舉,請參閱以下代碼摘錄。在java中使用數組常量定義枚舉

這不會編譯表達式錯誤的非法開始。任何人都可以幫助我?

非常感謝

public enum Currency 
{ 
    *****PENNY(1, {"one", "oneone"}),* 
    NICKLE(5, {"five"}), 
    DIME(10, {"ten"}), 
    QUARTER(25, {"twentifive"});**** 

    private int valueInteger; 
    private String[] valueString; 

    private Currency(int valueInteger, String[] valueString) { 
     this.valueInteger = valueInteger; 
     this.valueString = valueString; 
    } 

} 

回答

1

是的,你只需要初始化它們。例如,

NICKLE(5, new string[]{"five"}) 
+1

非常感謝傑夫,它的工作原理properly¡¡¡ – 2011-12-23 11:35:20

0

對於這種使用情況下,我會用一個可變參數的方法來代替:

public enum Currency { 
    PENNY(1, "one", "oneone"), 
    NICKLE(5, "five"), 
    DIME(10, "ten"), 
    QUARTER(25, "twentifive"); 

    private int valueInteger; 
    private String[] valueString; 

    private Currency(int valueInteger, String... valueString) { 
     this.valueInteger = valueInteger; 
     this.valueString = valueString; 
    } 

}