参考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。