将值设置为枚举 - Java

And*_*oid 18 java enums android

我正在尝试在我的java应用程序中将值设置为枚举....但我不能这样做.

我做错了吗???

public enum RPCPacketDataType {
    PT_UNKNOWN(2),
    PT_JSON(4),
    PT_BINARY(5)
};
Run Code Online (Sandbox Code Playgroud)

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

emb*_*oss 39

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

您也可以像在"普通"类中一样在枚举上定义方法.

 System.out.println(RPCPacketDataType.PT_JSON.getNumericType() // => 4
Run Code Online (Sandbox Code Playgroud)


Mic*_*ael 7

您应该创建一个接受int参数的Contructor .还要添加一个int将保存传递值的字段.

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

    private int mValue;

    RPCPacketDataType(int value) {
        mValue = value;
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 您可能还希望添加一个getter以便稍后访问该值. (2认同)