нагуглить ответ, поэтому спрашиваю тут.
Есть некоторый котлин-класс, в котором происходит что-то и дёргается какой-то коллбэк.
var onRequest: (() -> Unit)? = null
Этот класс создаётся и вызывается из Java-класса, и там же на него навешивается обработчик. При этом, почему-то обязательно нужно указать return-стэйтмент, иначе IDE ругается.
в джаве return statement обязательный
хм... return обязательный именно при вызове котлиновских методов из Java? просто так сходу в Java же есть функциональные интерфейсы с методами без обязательного return - т.е. в самой по себе Java return не обязательный.
Смысл в том, что в котлин методе в сигнатуре ()->Unit. И Unit !=void
интересно, а у меня конвертировалось в воид когда я делал корутинные монады для джавы
Со стороны котлин конвертируется, но со стороны Java по-моему нет.
действительно, я тогда использовал fun interface, а не лямбды
Обсуждают сегодня