2011-12-23 7 views
1

Я хотел бы знать, можно ли определить перечисление с массивом как константу; см. следующий фрагмент кода.Перечисления, определенные с константой массива в 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¡¡¡ –

0

Для этого случая использования, я хотел бы использовать vararg подход вместо:

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

} 
Смежные вопросы