java的枚举类型转换_Java强制转换为枚举类型问题

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值