gpt4 book ai didi

android - 删除 kotlin 中的 "this"回调

转载 作者:太空狗 更新时间:2023-10-29 15:40:07 24 4
gpt4 key购买 nike

我是一个 kotlin 新手,我正在尝试删除回调本身中的回调实例。

我想要实现的是类似于下面的代码。

private val myCallback = SomeInterfaceType {
if(it.something) {
someObject.removeListener(this@SomeInterfaceType)
}
}

当然它不会编译,否则我不会在这里问。所以我问,如何从接口(interface)实例中删除回调?

编辑:错误是“推断的类型是 X 但 Y 是预期的。

编辑 2:我刚刚意识到我问错了问题,它与它相似但不完全是一个接口(interface)。

我正在使用的对象具有以下构造函数/接口(interface)

public open class Watcher<T> public constructor(call: (T) -> kotlin.Unit)

所以实际上我试图从 call: (T) -> kotlin.Unit 中引用 Watcher删除监听器。

这可能吗?

最佳答案

您需要使用完整的 object expression引用能够引用实例本身的语法:

private val myCallback = object: SomeInterfaceType() {
override fun onSomeEvent() {
if (it.something) {
someObject.removeListener(this)
}
}
}

关于android - 删除 kotlin 中的 "this"回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48745286/

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