据我所知,当您第一次调用类时,Kotlin会生成吸气剂。因此,例如,以下代码将始终为我提供相同的答案:
val instance
get() = getFromDb() ?: MyData()
[如果存在一个非null的MyData
实例,那么它将一直提供该实例,并且如果DB的结果为null,则我将始终获得MyData
的新实例。我在这里可能是错的,所以请纠正我。
问题是如何更新吸气剂的值?即大多数时候,我想从数据库中获取数据,但是注销后,我想从数据库中请求数据,或者只是再次给我一个新实例。
如果我正确理解情况:
并且所有这些实例都应保存到实例变量中。如果这是您想要的,则可以执行以下操作:
var instance
get() = field ?: getFromDb().also { field = it } ?: MyData().also { field = it }
请用var
代替val
来提示>