Intereting Posts

Set Value to Enum – Java

Я пытаюсь установить значения для перечисления в моем приложении java … но я не могу этого сделать.

Я делаю это неправильно?

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

Это дает мне эту ошибку: конструктор RPCPacket.RPCPacketDataType (int) не определен.

Solutions Collecting From Web of "Set Value to Enum – 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 

Вы должны создать Контрактор, который принимает параметр 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 правильно сказали, что вы можете использовать Contructor, который принимает ant int