Tato podpora (pokud vím) přímo v Kotlinu zatím není, ale nedávno mě napadlo, že bychom si mohli definovat takovouto funkci:
fun notNull(vararg args: Any?, action: () -> Unit) { when { args.filterNotNull().size == args.size -> action() } }
což nám tuto funkcionalitu umožní. Je to bezpečné však jen pro lokální proměnne/konstanty a pak ještě pro konstantní property třídy. Pokud je však řeč o proměnných propertách ve třídě, zde již žádný warning, že mohou být za běhu např. jiným vláknem změněny, nedostaneme. Nicméně výše definovaná funkce se dá použít např. takto:
val a = 1 val b = "something" var c: Float? = 2f notNull(a, b, c) { println("Almost safe!") } c = null notNull(a, b, c) { println("Doesn't print ...") }