Android Koltin函数引用:此表达式未使用
当我按如下方式使用Kotlin函数表达式时,我从编译器中得到一个警告,表示该表达式未使用Android Koltin函数引用:此表达式未使用,android,kotlin,Android,Kotlin,当我按如下方式使用Kotlin函数表达式时,我从编译器中得到一个警告,表示该表达式未使用 val button: Button by lazy{findViewById(R.id.button)} nextButton.setOnClickListener { viewModel::callFoo } 当我从lambda中调用实际函数时,警告消失了 val button: Button by lazy{findViewById(R.id.butt
val button: Button by lazy{findViewById(R.id.button)}
nextButton.setOnClickListener { viewModel::callFoo }
当我从lambda中调用实际函数时,警告消失了
val button: Button by lazy{findViewById(R.id.button)}
nextButton.setOnClickListener { viewModel.callFoo() }
查看文档中的函数引用并不能真正说明这一点。编译器是正确的,您的第一个代码没有任何作用。您可以自己检查,不会调用
callFoo()
这段代码就像是说:“单击时,运行我的lambda{viewModel::callFoo}
,它实际上什么都不做”。它只获取一个函数引用,不做任何事情。您的意思是将函数引用传递给setOnClickListener()
,而不是lambda:
nextButton.setOnClickListener(viewModel::callFoo)