3
我正在嘗試註冊我的課程,以便通過網絡發送信息。我需要註冊一個枚舉類,它看起來是這樣的:如何在Kryonet中註冊Enum類?
public enum Fort{
NOFORT("No Fort", 0, 0), TOWER("Tower", 1, 1), KEEP("Keep", 2, 2), CASTLE("Castle", 3, 3), CITADEL("Citadel", 4, 4);
protected int combatValue;
protected int income;
protected String name;
private Fort(String n, int c, int i){
name = n;
combatValue = c;
income = i;
}
public int getFortIncome(){
return income;
}
public int getComatValue(){
return combatValue;
}
}
我想送我的整個遊戲板在網絡上,這是需要我去註冊所有包含我局內部的子類。主要的問題是我試圖註冊我的枚舉時卡住了。
這是我在我的網絡課程是做:
// tell Kryo what things it's going to have to send
private void registerClasses(Kryo kryo) {
kryo.register(Request.class);
kryo.register(PacketMessage.class);
kryo.register(Fort.class);
kryo.register(ArrayList.class);
kryo.register(Tile.class);
kryo.register(Board.class);
}
當我嘗試註冊Fort.class我收到了一堆錯誤,看起來像這樣:
at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:504)
at com.esotericsoftware.kryo.serializers.FieldSerializer$ObjectField.write(FieldSerializer.java:564)
at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:213)
at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:504)
at com.esotericsoftware.kryo.serializers.FieldSerializer$ObjectField.write(FieldSerializer.java:564)
at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:213)
at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:504)
上午我註冊我的枚舉不正確?關於我如何正確地做到這一點的任何想法?
謝謝!
它看起來像一個Kryo問題。這是[Kryo項目](https://github.com/EsotericSoftware/kryo)頁面。 –
我一直在看,但我無法找到關於枚舉的任何信息!我不能成爲唯一的這個問題 – Sarah