在Java中,我可以写这样的东西
final Handler handler = new Handler();
handler.post(new Runnable() {
@Override
public void run() {
handler.post(this);
}
});
Run Code Online (Sandbox Code Playgroud)
当我在Kotlin中编写类似的内容时,出现编译错误。thisLambda表达式内部无法正常运行。我能做什么?
val handler = Handler()
handler.post{
handler.post(this) // this line throws a compilation error
}
Run Code Online (Sandbox Code Playgroud)
val handler = Handler()
fun doAction() {
handler.post(::doAction) // like `this`
}
handler.post(::doAction)
Run Code Online (Sandbox Code Playgroud)
尽管从技术上讲Tim的解决方案也可行,但是他应该将其作为答案,因为这样比较容易。如果他这样做了,那就接受那个。
Run Code Online (Sandbox Code Playgroud)val handler = Handler() handler.post(object : Runnable { override fun run() { handler.post(this) } })