如何创建枚举方法
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;
}
我有这个枚举: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
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;
}