【发布时间】:2018-11-01 09:47:57
【问题描述】:
我声明了一个这样的简单接口:
interface OnSomethingReadyListener {
fun onSomethingReady()
}
当然还有二传手:
private val onSomethingReadyListeners = ArrayList<OnSomethingReadyListener>()
fun addOnSomethingReadyListener(callback: OnSomethingReadyListener) {
onSomethingReadyListeners.add(callback)
}
但后来我发现我不能使用 lambda:
something.addOnShopDataReadyListener { progressbar.visibility = View.GONE }
IDE 给了我一个错误:
Type mismatch.
Required: SomeClass.OnSomethingReadyListener
Found: () -> Unit
假设我想坚持使用 lambda 而不是匿名类 (object : OnSomethingReadyListener {...})。我应该如何声明OnSomethingReadyListener?
【问题讨论】:
-
您声称只有在方法没有参数时才会发生这种情况,这并没有在我这边进行检查。无论有无参数,它都不起作用。
-
@MarkoTopolnik 对不起,你是对的。我已经编辑了问题。
标签: android lambda interface kotlin