我在kotlin中有下一个代码:

handler.postDelayed(object : Runnable {
            override fun run() {
                Timber.i("run post msg")
                handler.postDelayed(this, AppPrefs.SEARCH_DELAY)
            }
        },AppPrefs.SOCKET_INTERVAL)

您如何看待这是创建延迟任务的简单标准方法(使用Runnable class)。对anonimus对象的this值引用实现了Runnable并进行编译并正常工作

但是当我为此做lamdba时:
handler.postDelayed({
            Timber.i("run post msg")
            handler.postDelayed(this, AppPrefs.SOCKET_INTERVAL)
        },AppPrefs.SOCKET_INTERVAL)

附加类的this值。

如何从内部厌食症类对自己的引用?

最佳答案

你不可以做这个。在Kotlin的论坛上询问了similar question,yole(该语言的创建者之一)说:

08-05 18:03