如何在java中与客户端和服务器共享枚举

时间:2013-11-04 00:09:36

标签: java enums client-server shared-libraries

我正在尝试找出与服务器和客户端共享枚举的最佳做法,它始终保存完全相同的数据。我知道如果我只是将代码复制并粘贴到服务器所具有的客户端中,那么它将无法工作,但我如何在两者之间共享这个对象的“库”呢?

例如:

public enum Misc
{
    BAG     ("Bag", 10, 1),
    MAP     ("Map", 10, 1),
    SCROLL  ("Sroll", 10, 1),
    WAND    ("Wand", 10, 1),
    POTION  ("Potion", 10, 1);

    private String name;
    private int value;
    private double weight;

    Misc(String name, int value, double weight)
    {
        this.name = name;
        this.value = value;
        this.weight = weight;
    }

    public String getName() { return this.name; }
    public int value() { return this.value; }
    public double weight() { return this.weight; }
}

我将通过网络发送这些枚举,例如通过网络从服务器到客户端写入Misc.BAG.toString()。在客户端上,我需要将收到的字符串转换回客户端上的Misc.BAG。只是将Items.jar作为具有相同枚举的库并使用Misc.ValueOf()将其转换回枚举工作或不?当我搜索一些说“是”和“否”时,我会得到有争议的答案。

如果我不能做前者,我将如何对客户端和服务器之间的枚举进行简单的引用?

1 个答案:

答案 0 :(得分:0)

在两个应用程序中使用该类有什么问题?只需创建一个包,它将包含在客户端和服务器中。