枚举可以有可变数量的参数吗?

Ale*_*rin 3 java enums

我正在尝试实现这样的枚举:

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

     private List<String> values;
}
Run Code Online (Sandbox Code Playgroud)

上面的代码显然不起作用,但我找不到任何有关如何实现它的信息.

这可以以某种方式完成吗?如果没有,什么是一个好的选择?

Kon*_*kov 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);
     }
}
Run Code Online (Sandbox Code Playgroud)