Java枚举设置自定义序数

got*_*ch4 23 java enums

有一天我试着这样做,但它不起作用:

enum MyEnum {ONE = 1, TWO = 2}
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,它没有编译!如何定制自定义序列???

Jon*_*eet 39

你不能.通过从0开始并进行处理来修正.来自以下文档ordinal():

返回此枚举常量的序数(它在枚举声明中的位置,其中初始常量的序数为零).

您无法分配自己的值.另一方面,您可以在枚举中拥有自己的值:

public enum Foo {
    ONE(1), TWO(2);

    private final int number;

    private Foo(int number) {
        this.number = number;
    }

    public int getNumber() {
        return number;
    }
}
Run Code Online (Sandbox Code Playgroud)


Joh*_*erg 6

这是您可以手动执行的操作:

enum MyEnum {
    ONE(1), 
    TWO(2);

    private int val;

    private MyEnum(int val) {
        this.val = val;
    }
}
Run Code Online (Sandbox Code Playgroud)