tre*_*ekt 4 java mapping enums
如何在 Java 中使用相同的键将枚举映射到枚举。例如..
public enum FirstEnum {
A, B
}
public enum ScndEnum {
A, B, C
}
Run Code Online (Sandbox Code Playgroud)
我找不到好的解决方案
您无法直接从一种枚举类型映射到另一种枚举类型,但可以使用 的值name()并使用 进行映射valueOf()。这两种方法都带有所有枚举类:
ScndEnum aToA = ScndEnum.valueOf(FirstEnum.A.name());
Run Code Online (Sandbox Code Playgroud)
如果你想让它通用:
private static <E extends Enum<E>, F extends Enum<F>>
F mapEnum(E enum1, Class<F> enum2Class) {
return Enum.valueOf(enum2Class, enum1.name());
}
Run Code Online (Sandbox Code Playgroud)
你可以使用类似的东西来调用
ScndEnum b = mapEnum(FirstEnum.B, ScndEnum.class)
Run Code Online (Sandbox Code Playgroud)