Java Enum 链接到另一个 Enum

标签 java enums

我想让 Java 中的枚举器具有其他枚举作为属性。

public enum Direction {
    Up(Down),
    Down(Up),
    Left(Right),
    Right(Left);

    private Direction opposite;

    Direction(Direction opposite){
        this.opposite = opposite;
    }
}

所以我有不同的方向,对于每个我想知道相反的方向。
它适用于 Down 和 Right,但我无法初始化 Up,因为 Down 还不知道(同一个堡垒 Left)。

初始化后如何编辑枚举变量?

最佳答案

将您的初始化放在静态块中:

public enum Direction {
    Up, Down, Left, Right;

    private Direction opposite;

    static {
        Up.setDirection(Down);
        Down.setDirection(Up);
        Left.setDirection(Right);
        Right.setDirection(Left);
    }

    private void setDirection(Direction opposite) {
        this.opposite = opposite;
    }

    public String toString() {
        return this.name() + " (" + opposite.name() + ")";
    }
}

关于Java Enum 链接到另一个 Enum,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60372779/

相关文章:

java - 从 JSON 中的多值元素中过滤单个元素

java - eclipse 错误?仅使用默认情况打开 null

c# - T4 生成的代码需要访问不同的命名空间/项目

java - 在 Java 中使用带有枚举的静态方法

java - 如何修复PreparedStatement.setString中的 "Declaration, final or effectively final variable expected"

java - Android Studio 未找到主要 Activity

Java背景框架和图像之间的间隙

java - 可以通过 Java 泛型类型系统强制执行自然排序吗?

c++ - ‘[’ 标记之前的预期主表达式

mysql - 对 ENUM 类型的限制还不够?