10
反向查找在Kotlin中有效的枚举?
我正在尝试找到对Kotlin枚举进行“反向查找”的最佳方法。我从有效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] } } } 我的问题是,这是最好的方法,还是有更好的方法?如果我有几个遵循类似模式的枚举怎么办?Kotlin中是否有办法使此代码在枚举中更可重用?