在Java 8中,我们可以引用Class实例的方法。这是一个例子
Function1<Integer, Object> ref = a::getItem;
a是Adapter
具有方法的类的实例Object getItem(int i)
。
我们可以在科特林做同样的事情吗?我尝试了相同的语法,但没有成功。到目前为止,我只能创建一个扩展方法引用,如下所示:
val ref: Adapter.(Int) -> Any = Adapter::getItem
但是在这里我仍然需要一个实例Adapter
来调用它。我看到的另一种替代方式是定义一个lambda,如下所示:
val ref: (Int) -> Any = { a.getItem(it) }
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句