最佳答案
我试图找到一个最好的方法来做一个“反向查找”在 Kotlin 枚举。有效 Java 给我的启示之一是,在枚举中引入一个静态映射来处理反向查找。通过一个简单的 enum 将其移植到 Kotlin,我得到了如下代码:
enum class Type(val value: Int) {
A(1),
B(2),
C(3);
companion object {
val map: MutableMap<Int, Type> = HashMap()
init {
for (i in Type.values()) {
map[i.value] = i
}
}
fun fromInt(type: Int?): Type? {
return map[type]
}
}
}
我的问题是,这是最好的办法,还是有更好的办法?如果我有几个遵循类似模式的枚举,该怎么办?在 Kotlin 有没有办法让这些代码在 enum 中更加可重用?