加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java强制转换为枚举类型问题

发布时间:2020-12-15 02:06:50 所属栏目:Java 来源:网络整理
导读:将 Java long类型转换为Enum类型时出现了一些问题,无法找到解决方法. 这是我正在使用的: public enum DataType { IMAGES(1),VIDEOS(2); private int value; private DataType(int i){ this.value = i; }} 我需要做这样的事情: DataType dataType;String th
将 Java long类型转换为Enum类型时出现了一些问题,无法找到解决方法.

这是我正在使用的:

public enum DataType {
    IMAGES(1),VIDEOS(2);

    private int value;
    private DataType(int i){
        this.value = i;
    }
}

我需要做这样的事情:

DataType dataType;
String thiz = "1";
long numb = Long.parseLong(thiz);
dataType = numb;

我得到的错误说:

Convert numb to DataType or convert dataType to long.

第二种情景:

我有这个 :

static String[] packetType;
String tmp=incomingData.toString(); // where incomingData is byte[]
int lastLoc = 0;
int needsSize = packetFieldSizes[tmpCurrentField-1]; // where packetFieldSizes,tmpCurrentField are integers.
thiz=tmp.substring(lastLoc,needsSize);    

packetType=thiz;  // packetType = thiz copy; where thiz is the same as used above.

我试图将thiz转换为String []并使用valueOf,但是

有任何建议如何使思想工作?

提前致谢!

解决方法

枚举已经为每个实例提供了一个唯一的整数.查看 ordinal().(请注意,它基于零.)

如果您需要从long到DataType,您可以这样做

DataType dataType;
String thiz;
long numb = Long.parseLong(thiz);
dataType = DataType.values()[(int) numb];

在这个答案中可以找到枚举常量,字符串和整数的完整转换列表:

> Conveniently map between enum and int / String

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读