[英]Getting the value of an enum field
我有一個字節值的枚舉:
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
,該id
在創建enum
常量時初始化,並且可以通過getId
成員方法進行訪問。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.