我有2个枚举,其中包含相同的值,有些方法使用一个枚举,有些方法使用另一个。我想传递一种枚举类型代替另一种。例如:
public enum Colors { RED, BLUE, GREEN }
public enum ScreenColors { RED, BLUE, GREEN }
public void myFunc(Colors color) {
// Some code
}
// Want to call this as:
myFunc(ScreenColors.RED);
答案 0 :(得分:3)
您可以将此静态块添加到颜色枚举
private static final Map<Colors, ScreenColors> LOOK_UP = new HashMap<>();
static {
for (Colors value : EnumSet.allOf(Colors.class)) {
LOOK_UP.put(value, ScreenColors.valueOf(value.name());
}
}
public static ScreenColors forColors(Colors color) {
return LOOK_UP.get(color);
}
然后你可以打电话
myFunc(Colors.forColors(ScreenColors.RED));