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

Kotlin中Singleton的正确使用:两种调用方式该选哪一个?

两种调用方式的正确性分析

首先明确:这两种调用方式在语法和功能上都是正确的,最终都会调用到同一个单例实例的doSomeWork()方法,但从Kotlin语言设计的角度,方式2是更推荐的写法。

为什么两种方式都可行?

Kotlin中用object关键字定义的是单例对象,它在程序运行时会被自动初始化出唯一的实例。

  • 方式1里的private var prefTask: SharedPrefTask = SharedPrefTask,本质是把这个唯一的单例实例赋值给了一个变量,后续通过变量调用方法,和直接调用单例对象本身没有区别。
  • 方式2则是直接通过单例对象的名称调用成员方法,这是Kotlin设计object单例时的标准用法。

更推荐方式2的原因

  1. 简洁性:不需要额外声明多余的变量,减少不必要的代码。
  2. 可读性:直接通过对象名调用,能清晰体现这是一个单例对象的方法调用,符合Kotlin的惯用写法。
  3. 避免冗余:方式1的变量声明完全是多余的,因为单例本身就是全局唯一的实例,不需要再用变量持有它。

代码示例对比

方式1(合法但冗余):

private var prefTask: SharedPrefTask = SharedPrefTask
prefTask.doSomeWork()

方式2(推荐写法):

SharedPrefTask.doSomeWork()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 03:39:34