如何创建枚举方法

How to create enum method

我有这个枚举:public enum Color { RED, YELLOW; }。 我想创建一种 returns 与实际颜色相反的方法。所以如果我有红色,我的方法 returns 黄色。但我不知道要遵循的过程。 第一步:public Color opposite() { return ??? }

如果这个元素是红色的,你想要return黄色;否则你想要 return RED。所以

public enum Color {
    RED, YELLOW;
    public Color opposite() {
        if (this==Color.RED) {
            return Color.YELLOW;
        }
        return Color.RED;
    }
}

opposite()方法可以更简洁地写成:

public Color opposite() {
    return (this==Color.RED ? Color.YELLOW : Color.RED);
}

或者,如果您想允许更多的枚举值,如:

public Color opposite() {
    switch (this) {
        case RED: return Color.YELLOW;
        case YELLOW: return Color.RED;
        // other possible values
    }
    // required for compiler
    return null;
}

As , Java 12 onwards supports switch expressions,它提供了更清洁的替代方案:

public Color opposite() {
    return switch (this) {
        case RED -> Color.YELLOW;
        case YELLOW -> Color.RED;
    };
}

为此尝试使用 开关

 public class Main {
    enum Color {
        RED,
        YELLOW;
    }
    public static void main(String[] args) {
    }
    public Color opposite() {
        Color myColor = Color.RED;
        return switch (myColor) {
            case RED -> Color.YELLOW;
            case YELLOW -> Color.RED;
        };
    }

}

如果您更喜欢使用 if 语句 而不是 switch。你可以试试这个

public Color opposite() {
        Color myColor = Color.RED;
        if (myColor == Color.RED) {
            return Color.YELLOW;
        } else  if (myColor == Color.YELLOW) {
            return Color.RED;
        }
        return null;
    }