In Java 8 we can have a reference to a method of a Class' instance. Here's an example
Function1<Integer, Object> ref = a::getItem;
a is an instance of the class Adapter
that has the method Object getItem(int i)
.
Can we do the same in Kotlin? I tried the same syntax without success. So far I was only able to create an extension method reference like so:
val ref: Adapter.(Int) -> Any = Adapter::getItem
But here I still need an instance of an Adapter
to invoke it. The other alterantive I see is defining a lambda like this:
val ref: (Int) -> Any = { a.getItem(it) }
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…