设置Java枚举类型的值

时间:2013-12-30 08:15:45

标签: java enums

我想使用enums在我的小程序中对常量变量进行分组,我想设置这些值,以便稍后可以提取值并将它们用作整数。

我在考虑这样的事情:

public enum Value {
    THREE = 3,
    SIX = 6, 
    NINE = 9
}

所以稍后我可以检索这样的值:

int[] myIntArray = new int[Value.THREE];

我之前使用C++这种方式,但这对我来说不适用于Java。有没有一种方法可以显式设置Java枚举值,有人可以解释我如何设置然后从enum中提取值吗?

3 个答案:

答案 0 :(得分:5)

Java的语法如下:

public enum NUMBER
{
    THREE(3),
    SIX(6), 
    NINE(9);

    NUMBER(int value){this.value = value;}

    private int value;

    public int getValue(){return value;}
}

然后你就可以使用它:

int[] myIntArray = new int[NUMBER.THREE.getValue()];

答案 1 :(得分:2)

我会说这不是使用ENUMs的逻辑上正确的方法。枚举不属于任何特定的Java类型(如int float等)。 他们是类型本身。例如,比如说定义银行账户类型,

public enum AccountTYpe
{
    SAVING(1),
    CHECKING(2);

}

现在使用enum 的优势是,对于AccountTYpe类型的变量,只有两个有效的分配,即SAVINGCHECKING。其他任何东西都会标记编译错误。

您的要求似乎是整数常量我建议使用接口内定义的值集,如下所示

public interface Value {
    Integer THREE = 3;
    Integer SIX = 6;
    Integer NINE = 9;
}

由于接口内定义的变量是public staticfinal,因此您可以根据需要将它们用作代码中的常量。

int[] myIntArray = new int[Value.THREE]; 

答案 2 :(得分:0)

使用构造函数

public enum Value {
    THREE(3), SIX(6), NINE(9);

    private int value;

    private Value(int value) {
        this.value = value;
    }

    public int getValue() {
        return value;
    }
}