receive pass parameter functions expresiones examples lambda kotlin

pass - kotlin receive lambda



Referencia al método de una instancia particular en Kotlin (1)

Desde Kotlin 1.1, puede usar referencias enlazables obligatorias para hacer eso:

val f = a::getItem

list.forEach(myObject::myMethod)

Las versiones anteriores de Kotlin no tienen esta característica y requieren que haga una lambda cada vez, excepto en estos casos simples .

En Java 8 podemos tener una referencia a un método de una instancia de clase. Aquí hay un ejemplo

Function1<Integer, Object> ref = a::getItem;

a es una instancia de la clase Adapter que tiene el método Object getItem(int i) .

¿Podemos hacer lo mismo en Kotlin? Probé la misma sintaxis sin éxito. Hasta ahora solo pude crear una referencia de método de extensión como esta:

val ref: Adapter.(Int) -> Any = Adapter::getItem

Pero aquí todavía necesito una instancia de un Adapter para invocarlo. La otra alternativa que veo es definir una lambda como esta:

val ref: (Int) -> Any = { a.getItem(it) }