tos*_*gic 6 enums enumset kotlin
我对 Kotlin 还很陌生,并尝试创建一种位集枚举,其中整数对应于状态,并且我可以通过切换各个位来切换各个状态。但我坚持认为对象可以没有状态。
import java.util.*
fun main() {
var d = Door(100, EnumSet.noneOf(Status))
}
enum class Status(intValue: Int) {
OPEN(1),
CLOSED(1 shl 1),
CRACKED(1 shl 2),
BROKEN(1 shl 3)
}
class Door(val id: Int, val status: EnumSet<Status>) {}
Run Code Online (Sandbox Code Playgroud)
此代码失败并出现错误Classifier 'Status' does not have a companion object, and thus must be initialized here
Status.class我正在读另一个问题,他们说在 内部使用EnumSet.noneOf,但这会引发更多错误。
使用
EnumSet.noneOf(Status::class.java)
Run Code Online (Sandbox Code Playgroud)
Status::class与 Java类似Status.class,但使用了 Kotlin kotlin.reflect.KClass。java.lang.Class要获取所需的Java EnumSet.noneOf,您需要访问该java属性。
| 归档时间: |
|
| 查看次数: |
2056 次 |
| 最近记录: |