我想使用enums
在我的小程序中对常量变量进行分组,我想设置这些值,以便稍后可以提取值并将它们用作整数。
我在考虑这样的事情:
public enum Value {
THREE = 3,
SIX = 6,
NINE = 9
}
所以稍后我可以检索这样的值:
int[] myIntArray = new int[Value.THREE];
我之前使用C++
这种方式,但这对我来说不适用于Java。有没有一种方法可以显式设置Java枚举值,有人可以解释我如何设置然后从enum
中提取值吗?
答案 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
类型的变量,只有两个有效的分配,即SAVING
和CHECKING
。其他任何东西都会标记编译错误。
您的要求似乎是整数常量我建议使用接口内定义的值集,如下所示
public interface Value {
Integer THREE = 3;
Integer SIX = 6;
Integer NINE = 9;
}
由于接口内定义的变量是public
static
和final
,因此您可以根据需要将它们用作代码中的常量。
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;
}
}