kotlin - 如何使用 Kotlin 中的属性访问枚举实例?
问题描述
我有一个这样的枚举类:
enum class ParkingLotStatus (val number:Int, var occupied: Boolean) {
LOT1(1,true),
LOT2(2,false)
}
我想使用number
变量选择枚举实例。如果我将用户输入设为1
,我希望能够LOT1
根据变量 (constant?)选择枚举强度number
。
一种方法是遍历所有枚举实例并检查输入是否与变量匹配
有没有更简单且资源密集的方法来做到这一点?
解决方案
像这样的东西会起作用:
fun main(args: Array<String>) {
val parking = ParkingLotStatus.get(1) // LOT1
}
enum class ParkingLotStatus (var occupied: Boolean) {
LOT1(true),
LOT2(false);
companion object {
fun get(number: Int) = when(number){
1 -> LOT1
2 -> LOT2
else -> throw UnsupportedOperationException("Invalid parking number")
}
}
}
我还建议切换到sealed class
es over Enum
s
推荐阅读
- java - Android Studio Build 使用 NDK 失败
- flutter - 如何写入xml文件并保存?
- android - 如何在没有 android studio 但使用 Visual Studio 代码的情况下开发 android 应用程序
- git - 让我的 github master 分支匹配另一个分支
- r - 一列基于另一列的 R 平均值
- reactjs - 下拉项在第一次尝试时未进行 api 调用
- linux - IMA 无法检测到现有的 TPM,即使它存在并正常运行
- reactjs - 我们可以使用带有 PrimeReact 按钮的 Material Icon
- java - 二进制文件的迭代器
- javascript - 在输入表中添加或删除行以及一些可用的 Jinja