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

如何导入Kotlin枚举类的伴生对象成员?

解决枚举类伴生对象成员的导入问题

当前代码里的import Color.*只会导入枚举类的枚举常量(R、G、B),并不会自动导入伴生对象中的成员,所以直接访问X会编译失败。要直接使用伴生对象的成员,有几种导入方式:

方式1:单独导入伴生对象的指定成员

直接明确导入需要的成员X:

import Color.*
import Color.Companion.X

方式2:导入伴生对象的所有成员

如果伴生对象包含多个成员,用*一次性导入所有:

import Color.*
import Color.Companion.*

修改后的完整可编译代码:

import Color.*
import Color.Companion.*

enum class Color {
    R, G, B;
    companion object {
        val X = 1
    }
}

fun main() {
    println(R.ordinal)
    println(X) // 现在可以直接访问X
}

可选优化:给伴生对象命名

如果觉得默认的Companion名称不够清晰,可以给伴生对象自定义名称,导入时使用这个名称:

enum class Color {
    R, G, B;
    companion object ColorUtils { // 自定义伴生对象名称
        val X = 1
    }
}

对应的导入语句:

import Color.*
import Color.ColorUtils.*

内容的提问来源于stack exchange,提问作者david.perez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 23:37:04