android - 渴望在 Kotlin 中初始化对象?

标签 android kotlin

我正在尝试在 object 声明中声明我的 android sqlite 迁移。每一个都扩展了接口(interface) Migration,我想让每个人在初始化时都用 Migrator 对象注册自己,它是一个对象,也是一个单例。不幸的是(我很晚才意识到)kotlin 对象是延迟初始化的,所以我的迁移必须在某个地方使用来注册自己。

我可以接受必须使用反射或注释,但对于这是否是一个好主意或如何遵循该方向的惯例没有任何影响。

最佳答案

只需将对象名称写入您的主函数(或任何您想强制初始化的地方)即可:

//Main.kt
fun main() {
    EagerObject
    //...
}

//EagerObject.kt
object EagerObject {
    //...
}

关于android - 渴望在 Kotlin 中初始化对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44092369/

相关文章:

Android ActionBarSherlock 标题裁剪

java - 在 onTouchEvent 和 dispatchTouchEvent 中返回 true 无法正常工作

android - rxjava2 和 rxkotlin 有什么区别?

android - ImageSpan未显示图像

android - Kotlin 1.3.0 不适用于 kotlin-stdlib

带有 BufferedWriter 和二进制数据的 Java ssl

android - i2c 设备驱动程序 init 未被调用

Android JsonArray 和 JsonObject 反序列化

spring - 使用 kotlin-spring 插件,仍然得到 class not open 错误

Java 到 Kotlin 的转换