如何实现两个不同类所需的枚举?

时间:2015-11-22 11:46:16

标签: java enums

班级Action

public class Action {
    public static enum Type {
        POSITION, MOUSE, KEY, TEXT
    }

    public final Type type;

    public Action() {
        this.type = Type.KEY;
    }

    //properties, getters, setters ...
}

班级Model

public class Model {
    public static enum Type {
        POSITION, MOUSE, KEY, TEXT
    }

    public final Type type;

    public void doSomething() {
        Action action = new Action();
        switch (action.type) {
            case this.Type.POSITION: //cannot convert from Model.Type to Action.Type
                //do stuff here
                break;
            case ...
                //more stuff here
                break;
            default:
                //default stuff here
                break;
        }
    }
}

这是我的(简化的)初始方法,显然不起作用。模型需要做一些操作,取决于Type Action具有的Action.Type type = action.type; ,我想确定不必跨越两个类之间的边界,这意味着我希望有一个比以下内容:

end = ' '

1 个答案:

答案 0 :(得分:3)

您必须将枚举提取到一个单独的源文件中,就像一个类,但类型为'enum':

public enum Type {
    POSITION, 
    MOUSE, 
    KEY, 
    TEXT
}

并通过导入将其访问到您的课程中。

您还可以使用static关键字将枚举保存到您的一个类中,并通过添加import语句在另一个类中访问它