bra*_*ter 25 java immutability enum-map guava
我最近了解了EnumMap在Java中的优点,并希望将现有的替换ImmutableMap<OccupancyType, BigDecimal>为EnumMap.但是,我也喜欢ImmutableMap提供的不可变属性.
Lou*_*man 34
番石榴贡献者在这里.
番石榴目前没有ImmutableEnumMap变种,但如果它有,它可能只是一个包装EnumMap.(也就是说,稍微好一点的不可变实现是可能的.)
EnumMapImmutableMap在任何情况下都会比基本表现更好; 很难或不可能击败.
(我将提交一个问题来调查ImmutableMap为枚举键类型添加变体.)
更新:Guava 14补充道Maps.immutableEnumMap().
The*_*ist 11
我只是想ImmutableEnumMap在Guava 14.0中提供一个示例,因为它是一个包私有类,所以你不能这样做ImmutableEnumMap.of().你必须做Maps.immutableEnumMap().
private final ImmutableMap<MyEnum, String> myEnumMap = Maps.immutableEnumMap(ImmutableMap.of(
MyEnum.A, "A",
MyEnum.B, "B",
MyEnum.C, "C"
));
Run Code Online (Sandbox Code Playgroud)
不确定是否有更自然的语法.