【问题标题】:Casting byte to Enum in Java在Java中将字节转换为枚举
【发布时间】:2013-10-08 23:32:40
【问题描述】:

我想知道如何将字节转换为枚举

我的代码是这样的:

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

但它不起作用,因为 data 是一个字节数组列表。反正有没有像我在 C# 中那样做?

谢谢。

【问题讨论】:

  • 不,你的意思是字节到枚举。
  • 糟糕,抱歉。感谢您注意到这一点。

标签: java casting arraylist enums


【解决方案1】:
public final EnumTest Test()
{
    return EnumTest.values()[data.get(1) & 0xFF];
}

【讨论】:

  • 你不需要 (int) 强制转换,但你需要一个 & 0xff。
  • @EJP - 嘿,你不认为负数组索引会起作用吗?
  • 谢谢!你帮了大忙。
【解决方案2】:

在 java 中枚举基本上只是类,在 C# 中它们只是常量(我认为)。 我不知道你为什么这么说:

将 Enum 转换为 Byte,是 Enum 转换为 Byte,而不是 Byte 转换为 enum。

当您从数据数组列表中获取一个字节并尝试返回一个枚举时...... 所以你确定你的意思不是字节到枚举吗?

无论如何,您可以使用 java 枚举的 ordinal 来获得您想要的,尽管您可能会更好地使用不同的设计。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-06
    • 2011-08-18
    • 2021-06-12
    • 1970-01-01
    • 2021-05-07
    • 1970-01-01
    相关资源
    最近更新 更多