在Kotlin中创建对象的语法有点模糊?

时间:2019-07-14 07:36:34

标签: android kotlin

private fun changeState() {
    Handler().postDelayed({
        myName.name = "Henok"
        binding.invalidateAll();
    }, 2000);
}

postDelayed(runnable,time),它同时接受runnable和time,但是这里我们将文字对象传递给runnable参数。那么,您能否以kotlin语法解释如何创建可运行对象?

2 个答案:

答案 0 :(得分:1)

如果我正确理解了您的问题,kotlin会在内部为您处理这些对象的创建,而只是要求您在内部定义如何处理创建的run方法的逻辑。 Kotlin并不总是要求您重写对象/接口来实现回调

fun example(callback:() -> Unit){

}

然后您将调用此函数并将其用作:

example {
//do some stuff here, as this is the callback method
}

答案 1 :(得分:1)

您没有传递“文字对象”,这就是lambdas用Kotlin编写的方式。而且您可以在此处使用lambda,因为RunnableJava interface with a single abstract method