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