Предположим, что сначала существует свойство, которое имеет нулевое значение. Я хочу убедиться, что этому свойству будет задано только значение, не имеющее значения NULL.Кроме того, я хочу выполнять некоторые действия каждый раз после установки этого свойства.I. Я понял, что если я использую Delegates.observable, я должен внутренне проверить, что если значение равно нулю, прежде чем выполнять какое-либо действие, и что я не могу избежать того, что значение null установлено в значение (я могу наблюдать, только когда значение равноустановлено уже, не раньше) ii.Я не могу использовать lateinit, с тех пор я не могу наблюдать, когда устанавливается значение (синтаксис установщика не может работать с lateinit)
Я могу подумать о том, чтобы иметь настраиваемую функцию сеттера для этого значения и объявить параметркак не обнуляемый.Как показано ниже:
class Test {
private var initialNull: String? = null
private fun setInitial(nonNullValue: String) {
initialNull = nonNullValue
onInitialSet()
}
}
Как вы думаете, это хорошая идея?
Я подумал о другой идее, что я мог бы создать пользовательский ReadWriteProperty, например NonNullableSetterObservable (initialValue), где null можетсначала будет передан initialValue, но позже может быть установлено только ненулевое значение.Это хорошая идея?