两个枚举值怎么互相映射
时间: 2024-09-13 20:05:58 浏览: 74
JsonConverter-master.zip
在编程中,特别是使用像Java这样的语言时,如果想要实现两个枚举类型之间的映射,你可以通过创建一个Map或者直接使用枚举类本身来关联不同的枚举值。以下是一个简单的例子:
```java
// 定义两个枚举类型
enum Color {
RED, GREEN, BLUE;
}
enum Shape {
CIRCLE(Color.RED), SQUARE(Color.GREEN);
private Color associatedColor;
Shape(Color color) {
this.associatedColor = color;
}
public Color getAssociatedColor() {
return associatedColor;
}
}
// 映射示例
Shape square = Shape.SQUARE;
System.out.println("Square's associated color is " + square.getAssociatedColor().name()); // 输出 "Square's associated color is GREEN"
// 或者使用Map
Map<Color, Shape> map = new HashMap<>();
map.put(Color.RED, Shape.CIRCLE);
map.put(Color.GREEN, Shape.SQUARE);
Color colorFromMap = Color.BLUE;
Shape mappedShape = map.get(colorFromMap);
```
在这个例子中,`Shape`枚举类的每个实例都有一个关联的`Color`值。通过`getAssociatedColor()`方法,可以方便地获取对应的颜色。如果你需要更复杂的映射,比如一对一或多对一的关系,Map会更合适。
阅读全文