带有扭曲的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)