将值设置为枚举 – Java

我想设置值枚举在我的Java应用程序….但我不能这样做。

我做错了吗?

public enum RPCPacketDataType { PT_UNKNOWN(2), PT_JSON(4), PT_BINARY(5) }; 

它给了我这个错误:构造函数RPCPacket.RPCPacketDataType(int)是未定义的。

Solutions Collecting From Web of "将值设置为枚举 – Java"

 public enum RPCPacketDataType { PT_UNKNOWN(2), PT_JSON(4), PT_BINARY(5); RPCPacketDataType (int i) { this.type = i; } private int type; public int getNumericType() { return type; } } 

您也可以像在“普通”类中那样在枚举中定义方法。

  System.out.println(RPCPacketDataType.PT_JSON.getNumericType() // => 4 

你应该创build一个接受一个int参数的构造器。 还要添加一个int字段,它将保存传递的值。

 public enum RPCPacketDataType { PT_UNKNOWN(2), PT_JSON(4), PT_BINARY(5); private int mValue; RPCPacketDataType(int value) { mValue = value; } } 
 public enum RPCPacketDataType { PT_UNKNOWN(2), PT_JSON(4), PT_BINARY(5); private int type; RPCPacketDataType(int type) { this.type = type; } public int getNumericType() { return type; } public void setNumericType(int type) { this.type = type; } public static void main(String[] args) { RPCPacketDataType.PT_UNKNOWN.setNumericType(0); System.out.println("Type: "+RPCPacketDataType.PT_UNKNOWN.getNumericType()); // Type: 0 } } 

正如#emboss和#Michael所说的,你可以使用一个接受ant int构造函数