I have the following code:
public enum PortableTypes { Boolean, etc...};
public void testConversion() {
byte b = 5;
PortableTypes type = (PortableTypes)b;
}
当我编译时,提示我这些是无法转换的类型。我不知道像这样简单的东西会被Java忽略。我是否遗漏了什么,或者Java根本不支持将类型转换为枚举?我还测试了一个int,但它也失败了。
如果不支持,最简单的解决方法是什么?
编辑:
由于每个人都在抱怨“糟糕的设计”,所以我会进一步解释一下。我正在使用枚举来表示您可以使用我的TcpServer发送的类型。数据包带有此类型,并且在接收端,我查看该类型并将其用于将从数据包中读取的字节转换为可用数据。显然,您无法使用OutputStream发送枚举,因此我需要将枚举值转换为数字值以进行发送。我不同意这是“糟糕的设计”的想法,我认为枚举确实应该用于此目的,但是这种设计在Java中不起作用,因为它具有强类型。