急于在kotlin中初始化对象?
我试图声明我的Android的SQLite迁移object
声明。 每个扩展接口Migration
,我想每个人注册自己初始化与Migrator
对象,作为一个对象,也是一个单身。 不幸的是(我很晚才意识到)kotlin对象被懒惰地初始化了,所以我的迁移必须在某个地方用来注册自己。
我可以接受不得不使用反射或注释,但是如果这是一个好主意或如何遵循这个方向的惯例,则不会有任何影响。
作为解决方法,您可以使用全局变量从对象声明切换到对象表达式:
急于:
val A = object { init { println("eager") } }
懒:
object A { init { println("lazy") } }