
java如何更改枚举默认的整数值
用户关注问题
Java中枚举的默认整数值是如何定义的?
我想了解Java枚举类型默认的整数值是如何分配和定义的。
Java枚举默认整数值说明
在Java中,枚举类型本身并没有默认的整数值。枚举常量是被当作特定的对象实例处理的,而不是简单的整数。默认情况下,Java不会为枚举值分配整数索引,虽然编译器会自动为枚举常量生成ordinal()方法,该方法返回当前枚举常量的序号,从0开始递增。
如何为Java枚举自定义特定的整数值?
我想给Java枚举成员绑定特定的整数值,该怎么操作?
给Java枚举赋予自定义整数值的方法
可以在枚举内部定义一个私有的整数字段,并通过构造函数为每个枚举成员赋值。例如:
public enum MyEnum {
VALUE_ONE(10),
VALUE_TWO(20);
private final int value;
MyEnum(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
这样可以通过getValue()方法获取对应的整数值。
修改枚举默认序号会影响ordinal()方法吗?
如果我为枚举成员定义了自己的整数值,ordinal()方法返回的值会发生变化吗?
ordinal()方法的行为及自定义整数值的关系
ordinal()方法返回枚举成员在定义中的位置索引,从0开始,与枚举成员声明的顺序一致。自定义整数值不会改变ordinal()的返回值,也不会影响该方法。若需要使用自定义整数值,应调用自己定义的getter方法。