我有一个枚举类:
enum class E { A, B, C, D }
初始化包含所有 E 值作为键的 EnumMap 的最简洁方法是什么,每个键的初始值都为 0?
val map = ...?
assert(map is EnumMap<E, Int>)
assert(map[E.A] == 0)
assert(map[E.B] == 0)
assert(map[E.C] == 0)
assert(map[E.D] == 0)
我能想到的最简洁的是:
val map = E.values().associateWithTo(EnumMap(E::class.java)) { 0 }
但是,名称的重复E
打破了 DRY 原则。而且这个词associateWithTo
有点拗口。有没有更简洁易读的方式?我希望有类似的EnumMap.allOf()
东西EnumSet.allOf()
。