Есть ли способ узнать, был ли инициализирован ленивый val в Kotlin, не инициализируя его в процессе?
Например, если у меня есть ленивый val, запрос, если он равен null, будет его экземпляр
val messageBroker: MessageBroker by lazy { MessageBroker() }
if (messageBroker == null) {
// oops
}
Я могу потенциально использовать вторую переменную, но это кажется беспорядочным.
private var isMessageBrokerInstantiated: Boolean = false
val messageBroker: MessageBroker by lazy {
isMessageBrokerInstantiated = true
MessageBroker()
}
...
if (!isMessageBrokerInstantiated) {
// use case
}
Есть ли какой-то сексуальный способ определения этого, например if (Lazy(messageBroker).isInstantiated())
?
Связанный (но не тот же): Как проверить, является ли "lateinit" переменная была инициализирована?