我正在尝试在声明中声明我的 android sqlite 迁移object。每个都扩展了 interface Migration,我想让每个人在初始化时注册自己,Migrator对象是一个对象,也是一个单例。不幸的是(我很晚才意识到)kotlin 对象被延迟初始化,所以我的迁移必须在某处使用来注册自己。
我可以接受必须使用反射或注释,但不知道这是否是一个好主意或如何遵循惯例朝着这个方向发展。
作为解决方法,您可以从对象声明切换到带有全局变量的对象表达式:
渴望的:
val A = object {
init { println("eager") }
}
Run Code Online (Sandbox Code Playgroud)
懒惰的:
object A {
init { println("lazy") }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1433 次 |
| 最近记录: |