Java枚举

在多数其它语言中,枚举只是命令整数常量的列表。在Java中,枚举实际上是类,枚举可以拥有成员变量、成员方法、构造方法。

enum Type{
    A,B,C,D;
}

枚举在编译后,会自动生成一个继承自java.lang.Enum的类。上面的枚举在编译后生成下面的代码:

class Type extends Enum{
    public static final Type A;
    public static final Type B;
    ...
}

更多参考 https://www.cnblogs.com/ldq2016/p/6627542.html

ordinal和value

ordinal()返回的值是索引,value()返回的是给枚举变量赋予的值。

public enum EnumDeviceType {
    Unknow(0),
    MasterSocket(1),
    SlaveSocket(2),
    DoorbellController(42),
    PowerControl(43);

    private int value = 0;

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

    public int value() {
        return value;
    }

    public static EnumDeviceType valueOf(int value) {
        switch (value) {
            case 0x01:
                return MasterSocket;
        }

        return Unknown;
    }
}

发表评论