将值设置为枚举 - Java

2022-09-02 11:25:08

我正在尝试在我的java应用程序中设置要枚举的值....但我不能那样做。

我做错了吗???

public enum RPCPacketDataType {
    PT_UNKNOWN(2),
    PT_JSON(4),
    PT_BINARY(5)
};

它给了我这个错误:构造函数RPCPacket.RPCPacketDataType(int)未定义。


答案 1
public enum RPCPacketDataType
{
    PT_UNKNOWN(2),
    PT_JSON(4),
    PT_BINARY(5);

    RPCPacketDataType (int i)
    {
        this.type = i;
    }

    private int type;

    public int getNumericType()
    {
        return type;
    }
}

您还可以在枚举上定义方法,就像在“普通”类中一样。

 System.out.println(RPCPacketDataType.PT_JSON.getNumericType() // => 4

答案 2

您应该创建一个接受参数的构造函数。还要添加一个将保存传递值的字段。intint

public enum RPCPacketDataType {
    PT_UNKNOWN(2),
    PT_JSON(4),
    PT_BINARY(5);

    private int mValue;

    RPCPacketDataType(int value) {
        mValue = value;
    }
}