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

如何从内部对象引用外部伴生对象的属性?

在嵌套对象函数中引用外部伴生对象的属性

因为foo函数的参数str和伴生对象的str同名,直接使用str会优先取局部参数,所以需要通过类名或者伴生对象的显式名称来限定访问:

方法一:通过类名直接访问

伴生对象的成员可以直接通过所属类的名称调用,修改代码如下:

class SomeClass {

    companion object {
        val str = "My String"
        object AnotherObject {
             fun foo(str: String) {
                  return str + SomeClass.str
             }
        }
    }
}

方法二:给伴生对象命名后访问

如果给伴生对象指定一个名称,也可以通过该名称访问其属性:

class SomeClass {

    companion object Companion {
        val str = "My String"
        object AnotherObject {
             fun foo(str: String) {
                  return str + Companion.str
             }
        }
    }
}

两种方式都能明确区分局部参数和伴生对象的str属性,解决名称遮蔽问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 18:32:03