我有以下枚举:
public static enum OpCode {
a((byte) 0x0),
b((byte)0x18),
c((byte)0x1A);
private byte value;
private OpCode (byte value) {
this.value = value;
}
byte getValue() {
return value;
}
如果我的值 x = 0x18 我怎样才能得到字符串'b'?
这是我尝试过的:
System.out.println(OpCode.values()[x]);
但是不起作用
最佳答案
您可以实现静态方法,例如fromByte
:
public enum OpCode {
... truncated
public static OpCode fromByte(byte x) {
for(OpCode oc : values()) {
if (oc.getValue() == x) {
return oc;
}
}
throw new IllegalArgumentException("Unknown OpCode value: " + x);
}
}
然后你可以这样调用它:
OpCode oc = OpCode.fromByte(x);
关于java - 获取枚举字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46872758/