我有 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);
最佳答案
你可以将这个静态 block 添加到颜色枚举中
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));
关于java - 映射具有在 2 个库之间共享的相同值的 2 个枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48502479/