Kotlin中哪个是静态的,哪个是单例的?

时间:2019-06-26 14:04:15

标签: kotlin

类型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中,哪个是静态示例,哪个是单例示例?两者的行为相似吗?

1 个答案:

答案 0 :(得分:2)

来自官方Kotlin docs

  

对象声明

     

如果您需要一个单例-一个只有一个实例的类-您   可以以通常的方式声明该类,但可以使用object关键字   代替班级

     

伴侣对象

     

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