У меня есть кое-что простое ниже (я использую когда вместо вместо, как я упростил из некоторого кода, который использует когда)
fun simplePresent(presentable: Presentable?) {
when {
presentable != null -> execute(presentable)
else -> skip()
}
}
fun execute(presentable: Presentable) { // Do something }
Все хорошо. Но когда я реорганизую проверочный код в функцию
fun simplePresent(presentable: Presentable?) {
when {
hasPresentable(presentable) -> execute(presentable)
else -> skip()
}
}
fun execute(presentable: Presentable) { // Do something }
fun hasPresentable(presentable: Presentable?) = presentable != null
сбой умного приведения к ненулевому значению при передаче значения в функцию execute
, что приводит к сообщению об ошибке времени компиляции required Presentable found Presentable?
Как я могу предотвратить эту ошибку, пока я все еще сохраняю свой код рефакторинга?