2013-10-08 77 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得到你想要的,但你可能会更好的与一个不同的设计。