将枚举类型放在不同的 class

Putting enum types in different class

我正在为基于图块的游戏制作一个代表不同图块类型的枚举,并且我有一个超级class,我想要从中继承图块的实例。正如我刚刚发现的,枚举不能扩展或继承自另一个 class!

我该如何解决这个问题?我的想法是,可以让 Tile-class 成为一个普通的 class,然后将枚举放在另一个 class 中。这是否可以实现,还是我需要换一种方式解决问题?

您可以使用 class 的静态字段,例如:

class Directions {
    static int LEFT = 0;
    static int DOWN = 1;
    static int RIGHT = 2;
    static int UP = 3;
}

您可以在枚举中包含任何字段。

public enum YourEnum {
    FIRST(new First()),
    SECOND(new Other()),

    private final Tile tile;   

    private YourEnum(int code, Tile t) {
        this.code = code;
        this.tile = t;
    }

    public Tile getTile() {
        return tile;
    }
}