2016-05-16 127 views

回答

52

从某些角度来看,Kotlin中的companion objects等价于Java类的静态部分。尤其是,他们班的第一次使用前初始化,这可以让你用自己的init块为Java静态初始化替代:

class C { 
    companion object { 
     init { 
      //here goes static initializer code 
     } 
    } 
} 
+0

同伴对象是在这里矫枉过正 – voddan

+1

@voddan,OP被问及之前执行代码首先使用现有的类。使用'object'声明的解决方案需要实际使用它,因为延迟初始化。 – hotkey

+0

@voddan你愿意解释为什么这是一个过度杀伤力,有什么替代品? –