什么是Kotlin中static initialisation block的等价物?
我知道Kotlin的设计不会产生静电。我正在寻找具有等效语义的东西 - 代码在首次加载类时运行一次。
我的具体用例是我想从Android AppCompat库启用DayNight功能,the instructions说要将一些代码放在Application
类的静态初始化块中。
答案 0 :(得分:95)
从某些角度来看,Kotlin中的companion object
s等同于Java类的静态部分。特别是,他们在上课前进行了初始化。第一次使用,这使您可以使用他们的init
块作为Java静态初始化器的替代:
class C {
companion object {
init {
//here goes static initializer code
}
}
}
答案 1 :(得分:0)
companion object {
// Example for a static variable
internal var REQUEST_CODE: Int? = 500
// Example for a static method
fun callToCheck(value: String): String {
// your code
}
}
一个类中的对象声明可以用伴随关键字标记,在此之下我们可以使用像java静态方法和变量这样的方法,比如classname.methodname或classname.variablename