Вот фактическое сообщение об ошибке, которое вы получаете:
Reference has a nullable type '(() -> Unit)?', use explicit '?.invoke()' to make a function-like call instead
Предположим, у вас был этот код:
val binder: ViewHolderBinder? = getBinder()
binder?.onClick()
onClick()
не является функциейВы можете вызвать экземпляр ViewHolderBinder
.Это свойство , которое содержит объект обратного вызова.Полный синтаксис для вызова этой функции обратного вызова:
binder?.onClick?.invoke()
Kotlin также предлагает специальный сокращенный синтаксис, который будет работать с ненулевым binder
:
binder.onClick()
Если вы примените егодля связующего с нулем,
binder?.onClick()
расширяется до
binder?.onClick.invoke()
Тип выражения binder?.onClick
равен (() -> Unit)?
, как говорится в ошибке.Вам не разрешено применять оператор .
к типу Nullable.