我必须将大约10-12个常量初始化为连续的整数。我现在正在这样做:
class MyClass
{
public static final int A = 1;
public static final int B = 2;
public static final int C = 3;
public static final int D = 4;
.
.
.
}
只是想知道是否有更简洁的方法来做到这一点。也许像C中的枚举?
答案 0 :(得分:5)
首选方法是使用enum
:
enum MyEnum {
A, B, C, D;
public final int value = ordinal() + 1; // or "+ base index"
}
public static void main(String[] args) {
System.out.println(MyEnum.B.value); // 2
}
或者,如果你真的喜欢原始整数常量,你可以这样做:
public static final int A, B, C, D;
static {
int x = 1;
A = x++; B = x++; C = x++; D = x++;
}
这限制了辅助反变量(x
)的范围。
答案 1 :(得分:2)
是的,自1.5以来Java中有枚举。或者你也可以这样做:
private static int x = 0;
public static final int A = x++;
public static final int B = x++;
public static final int C = x++;
public static final int D = x++;
.
.
答案 2 :(得分:1)
您可以在Java中使用枚举
enum MyEnum {
NOT_USED, A, B C, D, E, F
}
MyEnum x =
int num = x.ordinal();
答案 3 :(得分:1)
是的,您可以使用enum。 类似的东西:
class MyClass
{
public enum myEnum {
A, B, C,D
}
}
答案 4 :(得分:0)
java中的枚举与C中的枚举不同。您可以执行以下操作,但是每次要使用常量时都必须调用getValue(),这可能不是你想要的那样后。
public enum MyEnum {
A(1), B(2), C(3), D(4);
private final int value;
private MyEnum(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}