gpt4 book ai didi

lambda - 引用 Kotlin 中特定实例的方法

转载 作者:IT老高 更新时间:2023-10-28 13:26:47 25 4
gpt4 key购买 nike

在 Java 8 中,我们可以引用类实例的方法。这是一个例子

Function1<Integer, Object> ref = a::getItem;

a 是类 Adapter 的一个实例,它具有 Object getItem(int i) 方法。

我们可以在 Kotlin 中做同样的事情吗?我尝试了相同的语法但没有成功。到目前为止,我只能像这样创建一个扩展方法引用:

val ref: Adapter.(Int) -> Any = Adapter::getItem

但在这里我仍然需要一个 Adapter 的实例来调用它。我看到的另一个选择是定义一个像这样的 lambda:

val ref: (Int) -> Any = { a.getItem(it) }

最佳答案

从 Kotlin 1.1 开始,您可以使用 bound callable references这样做:

val f = a::getItem

list.forEach(myObject::myMethod)

早期的 Kotlin 版本没有此功能,并且要求您每次都创建一个 lambda,these simple cases 除外.

关于lambda - 引用 Kotlin 中特定实例的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28022388/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com