Java 获取枚举字段的值
我有一个字节值的枚举:Java 获取枚举字段的值,java,enums,byte,Java,Enums,Byte,我有一个字节值的枚举: public class ByteMessage { public enum Messages { ACK(0x01), CHAT(0x02), TURN(0x02), WAITING(0x03), REMATCH(0x04), DOUBLE(0x05), LOADREQUEST(0x06), LOADCOMPLETE(0x07), ROLL(0x08), DBLAC
public class ByteMessage {
public enum Messages {
ACK(0x01), CHAT(0x02), TURN(0x02), WAITING(0x03), REMATCH(0x04), DOUBLE(0x05), LOADREQUEST(0x06), LOADCOMPLETE(0x07),
ROLL(0x08), DBLACCEPTORDECLINE(0x09), DBLRECV(0x0A), ALERTPEERNOPOSSIBLES(0x0B), UPDATEDIES(0x0C),
SETTURN(0x0D), SETFIRSTROLL(0x0E), CALCPOSSIBLEINDEXES(0x0F), LOADGAMEREQUEST(0x10), LOADGAMECOMPLETE(0x11), PUSHSTATUSTEXT(0x12),
ISDOUBLESOWNER(0x13);
private final byte id;
Messages(int id) {
this.id = (byte) id;
}
public byte getId() {
return this.id;
}
}
在另一个类中,我有这个函数:
private void SendACK()
{
byte[] message = new byte[10];
//Neither one of these will compile I have to return back the byte value of ACK
//Byte a = new Byte(ByteMessage.M.ACK);
//message[0] = ByteMessage.M.ACK;
有没有办法从枚举中获取字节值
谢谢大家! 您应该使用
消息的getId
方法
enum:
message[0] = ByteMessage.M.ACK.getId();
enum
中的每个常量都是enum
的一个实例。与类一样,enum
的实例也可以包含数据。在您的特定情况下,每个enum
常量都有一个id
,该id在创建enum
常量时初始化,可以通过getId
成员方法访问