Set Value to Enum - Java
Я пытаюсь установить значения для перечисления в моем приложении java... но я не могу этого сделать.
Я делаю это неправильно???
public enum RPCPacketDataType {
PT_UNKNOWN(2),
PT_JSON(4),
PT_BINARY(5)
};
Это дает мне эту ошибку: конструктор RPCPacket.RPCPacketDataType(int) - undefined.
Ответы
Ответ 1
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
Ответ 2
Вам следует создать Контрактор, который принимает параметр int
. Также добавьте поле int
, в котором будет сохранено переданное значение.
public enum RPCPacketDataType {
PT_UNKNOWN(2),
PT_JSON(4),
PT_BINARY(5);
private int mValue;
RPCPacketDataType(int value) {
mValue = value;
}
}
Ответ 3
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