2015-09-04 3 views
3

Я пытаюсь осуществить перечисление, как это:Может ли перечисление иметь переменное количество параметров?

public enum Colors{ 
    REDISH ("red", "crimson", "pink") 
    BLUEISH ("blue", "oceanic", "sky", "darkblue", "lightblue") 
    YELLOWISH ("yellow", "orange") 
    ... 

    private List<String> values; 
} 

Приведенный выше код, очевидно, не работает, но я не мог найти любую информацию о том, как осуществить это.

Это можно сделать как-то? А если нет, то какая хорошая альтернатива?

ответ

5

Да, это возможно. Вы можете просто добавить конструктор с параметром varargs:

public enum Colors{ 
    REDISH ("red", "crimson", "pink"), 
    BLUEISH ("blue", "oceanic", "sky", "darkblue", "lightblue"), 
    YELLOWISH ("yellow", "orange"); 

    private List<String> values; 

    Colors(String ...strings){ 
     values = Arrays.asList(strings); 
    } 
} 
Смежные вопросы