一尘不染

Kotlin中的静态初始化块

java

Kotlin
中的静态初始化块等效于什么?

我了解Kotlin的设计宗旨是不带静电。我正在寻找具有等效语义的东西-首次加载该类时,代码将运行一次。

我的特定用例是,我想从Android
AppCompat库启用DayNight功能,并且说明要求将一些代码放入Application类的静态初始化块中。


阅读 423

收藏
2020-12-03

共1个答案

一尘不染

从某种角度看,Kotlin中的companion objects等同于Java类的静态部分。特别是,它们是在首次使用类之前初始化的,这使您可以使用它们的init块来代替Java静态初始化器:

class C {
    companion object {
        init {
            //here goes static initializer code
        }
    }
}
2020-12-03