在Java 8中,我们可以引用Class实例的方法.这是一个例子
Function1<Integer, Object> ref = a::getItem;
Run Code Online (Sandbox Code Playgroud)
a是Adapter具有该方法的类的实例Object getItem(int i).
我们可以在Kotlin做同样的事吗?我尝试了相同的语法但没有成功.到目前为止,我只能创建一个扩展方法引用,如下所示:
val ref: Adapter.(Int) -> Any = Adapter::getItem
Run Code Online (Sandbox Code Playgroud)
但是在这里我仍然需要一个实例Adapter来调用它.我看到的另一个变化是定义一个像这样的lambda:
val ref: (Int) -> Any = { a.getItem(it) }
Run Code Online (Sandbox Code Playgroud)