如何创建一个键和值都作为枚举的 EnumMap 对象?

S K*_*mar 0 java collections enums dictionary data-structures

enum Month{JANUARY, FEBRUARY, MARCH, ...
}

enum Week{MONDAY, TUESDAY, WEDNESDAY, ...
}
Run Code Online (Sandbox Code Playgroud)

Map<Month, String> monthMap = new EnumMap<>(Month.class); 可以像这样创建简单的 EnumMap,其中键是 Enum,值是 String

但是,我想创建 EnumMap,其中键和值都是枚举类型。

Map<Month, Week> monthWeekMap = new EnumMap<> ....
创建上述枚举映射对象的语法是什么。

And*_*ner 5

语法没有什么不同:

Map<Month, Week> monthWeekMap = new EnumMap<>(Month.class);
Run Code Online (Sandbox Code Playgroud)

EnumMap构造仅需要Class的键类型的,以决定如何分配用于实际存储阵列(一个EnumMap有效仅有一个强类型阵列,其长度在枚举元素的数量:这是通过获得反射); 值类型本质上是无关紧要的,因为它只是在Object内部存储值。