我的应用程序获取需要转换为对应的Enum值的外部数据。这是我的第一种方法:
public enum Side {
LEFT,
RIGHT;
public static Side fromByte(Byte b) throws Exception {
switch(b)
{
case 'l':
return LEFT;
case 'r':
return RIGHT;
default:
throw new Exception("not a valid byte");
}
}
}
这样可以吗,还是有一种更惯用的方式来做到这一点?
注意:忽略字节与字符的比较以及非常通用的异常抛出,稍后我将进行研究-特别是char和字节类型转换。似乎比我最初预期的要大。
最佳答案
我通常会这样
public enum Side
{
LEFT('l'),
RIGHT('r');
private byte byteValue;
private Side(byte byteValue)
{
this.byteValue = byteValue;
}
public byte getByteValue()
{
return byteValue;
}
public static Side findByByteValue(byte value)
{
for(Side side : values())
{
if(side.byteValue == value)
{
return side;
}
}
return null;
}
}
关于java - 从不同的值转换为Enum值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39433830/