Java如何在枚举类型中定义构造函数?

在下面的示例中,您将看到如何向枚举类型值添加构造函数。因为枚举只是另一个类类型,所以它可以像其他任何类一样具有构造函数,字段和方法。下面我们定义一个接受颜色代码字符串值的构造函数。因为我们的枚举现在有一个新的构造函数中声明,我们需要定义一个名为值恒定RED("FF0000"),ORANGE("FFA500")等等。

在Java中,枚举不仅扩展为命名常量。因为enum是类类型,我们可以将方法,字段和构造函数添加到枚举类型,如下面的示例所示。

package org.nhooo.example.fundamental;

public enum Rainbow {
    RED("FF0000"),
    ORANGE("FFA500"),
    YELLOW("FFFF00"),
    GREEN("008000"),
    BLUE("0000FF"),
    INDIGO("4B0082"),
    VIOLET("EE82EE");

    private String colorCode;

    // Rainbow枚举的构造函数。
    Rainbow(String colorCode) {
        this.colorCode = colorCode;
    }

    /**
     * Get the hex color code.
     * @return
     */
    public String getColorCode() {
        return colorCode;
    }
}
public class EnumConstructor {
    public static void main(String[] args) {

        // 要获取Rainbow枚举的所有值,我们可以调用Rainbow.values()
        // 返回Rainbow枚举值数组的方法。  
        for (Rainbow color : Rainbow.values()) {
            System.out.println("Color = " + color.getColorCode());
        }
    }
}