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
成员方法访问