为什么不能通过kotlin中的接口有时?

我刚开始学习kotlin,并正在阅读Android Studio生成的代码。 我注意到我可以做类似的事情

view.setOnClickListener { callAnotherMethod() } 

所以我创建了一个测试界面

 interface TestListener { fun onTest() } 

并设置监听器的fun

 private fun setTest(listener: TestListener) { } 

但在这个时候调用setTest{ callAnotherMethod() }不会工作。 我不明白为什么。 setOnClickedListener()是要求一个接口, setTest 。 同时, OnClickListener是一个接口, TestListener 。 为什么我不能用TestListener做同样的事情?

你可以试试这个:

 test(object : TestListener { override fun onTest() { } }) 

或者使用它:

 val aTestListner = object : TestListener { override fun onTest() { } }TestListener