如何创建一个键和值都作为枚举的EnumMap对象?
enum Month{JANUARY, FEBRUARY, MARCH, ...
}
enum Week{MONDAY, TUESDAY, WEDNESDAY, ...
}
Map<Month, String> monthMap = new EnumMap<>(Month.class); 可以像这样创建简单的 EnumMap,其中键是 Enum,值是 String
但是,我想创建 EnumMap,其中键和值都是枚举类型。
Map<Month, Week> monthWeekMap = new EnumMap<> ....
创建上述枚举映射对象的语法是什么。
回答
语法没有什么不同:
Map<Month, Week> monthWeekMap = new EnumMap<>(Month.class);
该EnumMap构造仅需要Class的键类型的,以决定如何分配用于实际存储阵列(一个EnumMap有效仅有一个强类型阵列,其长度在枚举元素的数量:这是通过获得反射); 值类型本质上是无关紧要的,因为它只是在Object内部存储值。