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

Kotlin中访问匿名对象成员出现未解析引用,如何修复?

问题修复方案

你的代码报错是因为顶层作用域的匿名对象会被Kotlin编译器推断为Any类型,而Any没有header成员。要解决这个问题,有两种常用方法:

方法一:将匿名对象移到局部作用域

如果不需要在全局使用这个对象,把它放到函数内部(比如main函数里),此时编译器会保留匿名对象的实际类型,就能直接访问成员:

fun main() {
    val authorization = object {
        val header = "Authorization"
    }
    println("${authorization.header}")
}

方法二:显式声明接口/类并实现

如果需要在全局使用这个对象,先定义一个包含所需成员的接口或类,让匿名对象实现它,同时给变量指定这个接口类型:

interface AuthInfo {
    val header: String
}

val authorization: AuthInfo = object : AuthInfo {
    override val header = "Authorization"
}

fun main() {
    println("${authorization.header}")
}

关于你提到的Baeldung文章写法可行的原因:他们的示例里匿名对象是在**局部作用域(函数内部)**定义的,这种场景下Kotlin不会把类型推断为Any,而是保留匿名对象的具体类型,所以可以直接访问成员。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 07:25:17