将
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