我有一个要求,多个枚举需要在 ie 中找到一个值Map<Key,Value>
(枚举的组合将返回一个唯一值)。我认为有很多选择,比如有一个包装对象说 Key,它将充当一个 Key。此外,如果键限制为两个(不确定),我们可以使用 Guava Table。
想要检查以下方法,其中两个枚举将映射到唯一的计算值,需要理解建议 -
i)如果这种方法很好?
ii) 如果是,它是否可扩展?即是否可以很容易地使其通用以支持'n'枚举,如toKey(Enum ...enums)
下面是两个枚举的片段 -
static Integer toKey(Status s, SubStatus ss) {
return Integer.valueOf(s.ordinal() * SubStatus.values().length + ss.ordinal());
}
和
Status { NONE, PASS, WARN, REJECT }
SubStatus { NONE, SOFT_REJECT, HARD_REJECT }
Integer key1 = toKey(Status.REJECT, SubStatus.HARD_REJECT)
Integer key2 = toKey(Status.WARN, SubStatus.NONE)
then key1 != key2
谢谢!