带有扭曲的Java枚举类
我必须对一个对象建模,该对象本质上是一个表示游戏级别的枚举:带有扭曲的Java枚举类,java,json,serialization,enums,deserialization,Java,Json,Serialization,Enums,Deserialization,我必须对一个对象建模,该对象本质上是一个表示游戏级别的枚举: public enum GameLevel { EASY(0, 3, 30), NORMAL(1, 4, 40), HARD(2, 5, 50); private int levelNum; private int size; private int score; private GameLevel(int levelNum, int size, int score) {
public enum GameLevel {
EASY(0, 3, 30),
NORMAL(1, 4, 40),
HARD(2, 5, 50);
private int levelNum;
private int size;
private int score;
private GameLevel(int levelNum, int size, int score) {
this.levelNum = levelNum;
this.size = size;
this.score = score;
}
public int getLevelNum() {
return levelNum;
}
public int getSize() {
return size;
}
public int getScore() {
return score;
}
}
现在我的问题是这个枚举既存在于我的服务器上,也存在于我的客户机上(共享库jar)。
我正在用全部内容对其进行序列化:
level { "levelNum":0, "size":3, "score":30 }
我可以将它反序列化回游戏级别的枚举对象。
但是,我希望能够在服务器级别更改它(例如:easy size=6而不是3)
并以相同的方式对其进行序列化,但在客户端可以对这些新值进行反序列化(当然,在不更改客户端上的对象的情况下,只更新服务器)
我不认为枚举是正确的选择,但在查看我的代码时,所有内容都是以类似“枚举”的方式处理的。只需为属性提供设置器。抱歉,修复了正常的问题。为enum提供setter听起来很老套,不是吗?“我[t]看起来不是enum的正确选择”,问题:你如何{de,}序列化它开始?@fge有什么想法如何在enum风格中实现这一点?(因此,该类的用户不应提供实际值,因为它们是每个级别的常量:easy、normal、hard)