2013-10-08 107 views
1

我不知道怎麼投的字節來枚舉鑄造字節枚舉在Java中

我的代碼是這樣的:

public final EnumTest Test() 
{ 
    return (EnumTest)data.get(1); 
} 

,但它不會起作用,因爲數據是一個字節數組列表。無論如何,像我在C#中那樣做這件事情?

謝謝。

+1

不,你的意思是指向Enum的字節。 – EJP

+0

哎呀,對不起。感謝您注意到這一點。 –

回答

2
public final EnumTest Test() 
{ 
    return EnumTest.values()[data.get(1) & 0xFF]; 
} 
+0

您不需要(int)強制轉換,但您確實需要&0xff。 – EJP

+0

@EJP - 嘿,你不認爲負數組索引會起作用嗎? – jtahlborn

+0

謝謝!你是一個很好的幫助。 –

0

在Java枚舉基本上只是類,在C#中它們只是常數(我認爲)。 我不知道你爲什麼這麼說:

把一個枚舉轉換爲字節,是枚舉到字節,而不是字節到枚舉。

當你在你的數據的ArrayList得到一個字節,並嘗試雖然返回一個枚舉.... 所以你確定你不是說要字節枚舉?

無論如何,你可能使用Java枚舉的ordinal得到你想要的,但你可能會更好的與一個不同的設計。