从两种不同的枚举类型初始化 EnumBiMap 最方便的方法是什么?我有以下情况:
public enum First {
A,
B,
C
}
和
public enum Second {
ALPHA,
BETA,
GAMMA
}
我试过类似的东西
private static EnumBiMap<First, Second> typeMap =
EnumBiMap<First, Second>.create(
Arrays.stream(First.values()).collect(Collectors.toMap(
Function.identity(), type -> {
switch(type) {
case First.A:
return Second.ALPHA;
case First.B:
return Second.BETA;
default:
return Second.GAMMA
}})));
但是我丢失了类型信息,所以我得到了错误。有没有更好的方法来获得这个映射?我也不能菊花链 put 因为 put() 只返回值而不是对地图的引用。就我而言,地图也可以是不可变的。