如何寫只有一個method的interface

Java由某個version開始
如果interface只有一個method
可以省略interface名同method名
  1. Handler().post(object: Runnable {
  2.         override fun run() {
  3.                 Log.v("v", "full")
  4.         }
  5. })
  6. Handler().post {
  7.         Log.v("v", "less")
  8. }
複製代碼
但自己寫的就有問題
  1. class MyFragment(val listener:Listener) : DialogFragment() {

  2.         override fun onCreate(savedInstanceState: Bundle?) {
  3.                 super.onCreate(savedInstanceState)
  4.                 listener.create(true)
  5.         }


  6.         interface Listener {
  7.                 fun create(finish: Boolean)
  8.         }
  9. }

  10. supportFragmentManager.let {
  11.         val listener = object : MyFragment.Listener{
  12.                 override fun create(finish: Boolean) {

  13.                 }
  14.         }
  15.         MyFragment(listener).show(it, "")
  16. }

  17. //有問題
  18. supportFragmentManager.let {
  19.         MyFragment{finish -> print(finish) }.show(it, "")
  20. }
複製代碼
好似依種咁既情況應該點寫?

TOP