我正在开发一个 Android 应用程序,我在其中创建了一个object常量文件来存储一些状态值。在我的一个课程中,我有一个 type 的变量Status。我需要从后端获得的一些数据中设置状态值。但是,数据是String形式的。有什么方法可以检查数据字符串是否在Status对象中并可能将此字符串转换为Status?
注意:可以有许多自定义类型,例如Status,因此考虑到它们的性能影响,我想尽可能避免使用枚举。
考虑以下场景
// Constants.kt
object Constants {
...
object Status {
const val OKAY = "okay"
const val DONE = "done"
const val PENDING = "pending"
}
...
}
// SomeClass.kt
class SomeClass {
private var status: Status? = null
setStatus(status: Status) {
this.status = status
}
}
// SomeOtherClass.kt
fun updateStatus() {
val someClass = SomeClass()
val status: String = getSomeStringFromServer()
// add some check to confirm whether status is actually one of Constants.Status
someClass.setStatus(status) // It wouldn't work because type String and Status are incompatible
}