gpt4 book ai didi

java - Kotlin 中的静态初始化 block

转载 作者:IT老高 更新时间:2023-10-28 13:26:13 31 4
gpt4 key购买 nike

static initialisation block 的等价物是什么?在 Kotlin 中?

我了解 Kotlin 的设计目的是没有静态的东西。我正在寻找具有等效语义的东西 - 代码在类首次加载时运行一次。

我的具体用例是我想从 Android AppCompat 库和 the instructions 中启用 DayNight 功能。说把一些代码放在 Application 类的静态初始化 block 中。

最佳答案

从某种角度来看,companion objects在 Kotlin 中相当于 Java 类的静态部分。特别是,它们在类第一次使用之前被初始化,这让你可以使用它们的 init block 来代替 Java 静态初始化器:

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

@voddan 这不是矫枉过正,实际上这是 Kotlin 网站上的建议:“在加载(解析)相应的类时初始化伴随对象,匹配 Java 静态初始化程序的语义。” Semantic difference between object expressions and declarations

关于java - Kotlin 中的静态初始化 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37262468/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com