我正试图找到在Kotlin上对枚举进行"反向查找"的最佳方法.我对Effective Java的一个看法是,你在枚举中引入了一个静态映射来处理反向查找.使用简单的枚举将其移植到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]
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,这是最好的方法吗,还是有更好的方法?如果我有几个遵循类似模式的枚举怎么办?在Kotlin中是否有一种方法可以使这些代码在枚举中更易于使用?