что можно придумать?
Есть ли NullableLazy?
Что значит обнулять?
Заставить вычислить значение при следующем вызове свойства?
не нет. нужно поставить = null для memory leak awoid
у тебя так: var foo by lazy { /* ... */ } ?
А WeakReference нельзя использовать?
у нас написан кастомный лейзи для переинициализации, resettableLazy
Из коробки нет, только брать стандартный Lazy, копипастить, добавлять публичный метод reset в делегат и дёргать ::myLazyProp.reset()
у меня свой делегат для этого resetableLazy
у нас тоже) но для другой цели, я влез в сорсы и не уверен что можно просто так сделать проперлю nullable
у меня для реинициализации проперти при изменении данных)
да-да, как раз это у нас и есть)
я из андроида) у нас вью пересоздается, схожая миссия
Так а чем это отличается от того, что вы спросили? Ваш reset переинициализирует сразу же, а вы хотите метод, который сбросит значение, а инициализация пройдёт при следующем обращении?
не сразу, а при пересоздании экрана мне нужна возможность обнулить содержимое lazy при закрытии экрана
Ну, так а ваш reset в кастомном делегате что делает?
заново вызывает инит блок и ставит его в лейзи пропертю но я не могу поставить туда null вот в чем проблема
Обсуждают сегодня