You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kotlin中定义非序数枚举并获取其值?

获取Kotlin自定义值枚举项的数值

嘿,这事儿超简单的!你现在定义的枚举类里,value: Int只是构造函数的参数,默认是私有的,所以没法直接访问。只需要把它改成公开的只读属性就行啦:

修改后的枚举类定义

enum class States(val value: Int) { // 这里把构造参数改成val,让它成为枚举项的公开属性
    STATE_A(4), 
    STATE_B(5), 
    STATE_C(7), 
    STATE_D(12)
}

访问枚举项的数值

现在你只需要通过枚举项的value属性就能拿到对应的数值了:

val cValue = States.STATE_C.value // 这里cValue的值就是7,完美符合你的需求!

额外小技巧(可选)

如果之后需要根据数值反向查找对应的枚举项,可以给枚举类加个伴生对象的辅助函数:

enum class States(val value: Int) {
    STATE_A(4), 
    STATE_B(5), 
    STATE_C(7), 
    STATE_D(12);

    companion object {
        // 根据数值返回对应的枚举项,找不到就返回null
        fun fromValue(targetValue: Int): States? {
            return values().find { it.value == targetValue }
        }
    }
}

用法示例:

val state = States.fromValue(7) // state就是States.STATE_C

内容的提问来源于stack exchange,提问作者Hamed Rezaee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:49:49