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

Kotlin中如何不创建实例,用点符号修改类中的变量?

问题解答

为什么MyClass.name = "New Name"无法执行?

你定义的name是实例成员变量,它属于MyClass的每个对象实例,而非MyClass类本身。只有创建MyClass的实例后,才能通过实例对象访问这个变量,直接用类名MyClass去访问实例成员会直接报错。

不创建实例修改类级变量是否可行?

完全可行,你需要把变量声明为类级成员,Kotlin中可以通过companion object(伴生对象)实现。修改后的代码如下:

class MyClass(me: String) {
    companion object {
        var name: String = "My Name"
    }
}

现在你就可以直接用MyClass.name = "New Name"修改这个类级变量,该变量属于MyClass类本身,所有MyClass的实例都会共享这个值,修改后任何地方通过MyClass.name访问到的都是最新值。

如果你的需求是类级常量,也可以在伴生对象里用const val声明(但常量不可修改)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 03:37:06