获取枚举字段的值



我有一个字节值的枚举:

        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;

有没有办法从枚举中取回字节值?

谢谢!

你应该

使用Message枚举的getId方法:

message[0] = ByteMessage.M.ACK.getId();

enum中的每个常量都是enum的一个实例。就像类一样,enum的实例可以包含数据。在特定情况下,每个enum常量都有一个id,该在创建enum常量时初始化,并且可以通过 getId 成员方法进行访问。

相关内容

  • 没有找到相关文章

最新更新