急于在kotlin中初始化对象?

我试图声明我的Android的SQLite迁移object声明。 每个扩展接口Migration ,我想每个人注册自己初始化与Migrator对象,作为一个对象,也是一个单身。 不幸的是(我很晚才意识到)kotlin对象被懒惰地初始化了,所以我的迁移必须在某个地方用来注册自己。

我可以接受不得不使用反射或注释,但是如果这是一个好主意或如何遵循这个方向的惯例,则不会有任何影响。

作为解决方法,您可以使用全局变量从对象声明切换到对象表达式:

急于:

 val A = object { init { println("eager") } } 

懒:

 object A { init { println("lazy") } }