Нет, удивительный способ отсутствует (пока функции с несколькими получателями не будут добавлены в Kotlin). Есть два варианта, чтобы избежать этого ада обратного вызова:
Использовать if (variableOne == null) return
операторов.
Создать вспомогательную функцию, подобную этой:
fun <A : Any, B : Any, C : Any> runIfNotNull(a: A?, b: B?, c: C?, block: (A, B, C) ->
Unit) {
if (a != null && b != null && c != null) block(a, b, c)
}
Таким образом, вы можете использовать его следующим образом:
runIfNotNull(nullableOne, nullableTwo, nullableThree) { notNullOne, notNullTwo, notNullThree ->
doSomething(notNullOne, notNullTwo, notNullThree)
}
И вам придется создавать аналогичные функции для каждого количества аргументов, которые вам понадобятся.