参考Kotlin中特定实例的方法
在Java 8中,我们可以引用一个类的实例的方法。 这是一个例子
Function1<Integer, Object> ref = a::getItem;
a是具有方法Object getItem(int i)
的类Adapter
实例。
我们可以在Kotlin做同样的事吗? 我尝试了相同的语法没有成功。 到目前为止,我只能创build一个扩展方法的引用,如下所示:
val ref: Adapter.(Int) -> Any = Adapter::getItem
但是在这里我仍然需要一个Adapter
的实例来调用它。 我看到的另一种替代方法是定义一个这样的lambda:
val ref: (Int) -> Any = { a.getItem(it) }
由于Kotlin 1.1,你可以使用绑定可调用的引用来做到这一点:
val f = a::getItem
list.forEach(myObject::myMethod)
早期的Kotlin版本没有这个function,并且除了这些简单的情况外,每次都要求你做一个lambda。