【问题标题】:Which is static and which is singleton in kotlin?在 kotlin 中哪个是静态的,哪个是单例的?
【发布时间】:2019-06-26 14:04:15
【问题描述】:

类型 1:

class TestExample {
      object Bell {
       fun  add(){

       }
   }

 Class B{
  TestExample.Bell.add()
}

类型 2:

class TestExample {
      companion object Bell {
       fun  add(){

       }
   }



Class B{
TestExample.add()
 }

在这个类型 1 和类型 2 中,哪个是静态示例,哪个是单例示例?两者的行为相似,对吗?

【问题讨论】:

标签: kotlin


【解决方案1】:

来自 Kotlin 官方docs

对象声明

如果你需要一个单例——一个只有一个实例的类——你 可以以通常的方式声明类,但使用 object 关键字 而不是类

伴随对象

如果您需要将函数或属性绑定到类而不是 对于它的实例(类似于 Python 中的 @staticmethod),您可以 在伴随对象中声明它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-25
    • 1970-01-01
    • 1970-01-01
    • 2020-02-28
    • 1970-01-01
    • 2012-11-27
    • 1970-01-01
    相关资源
    最近更新 更多