如何引用Kotlin中的匿名内部类?

我有以下扩展方法。 如何引用传递给addOnGLobalLayoutListener()方法的addOnGLobalLayoutListener() ? 我需要将侦听器传递给removeOnGlobalLayoutListener()方法。

 fun View.OnGlobalLayout(callback:() -> Unit ): Unit{ this.viewTreeObserver.addOnGlobalLayoutListener { if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) { this.viewTreeObserver.removeOnGlobalLayoutListener(this); } else { this.viewTreeObserver.removeGlobalOnLayoutListener(this); } callback(); } } 

一种方法是使用对象表达式来代替lambda,如下所示:

 fun View.OnGlobalLayout(callback: () -> Unit): Unit { val viewTreeObserver = this.viewTreeObserver viewTreeObserver.addOnGlobalLayoutListener(object : ViewTreeObserver.OnGlobalLayoutListener { override fun onGlobalLayout() { if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) { viewTreeObserver.removeOnGlobalLayoutListener(this); } else { viewTreeObserver.removeGlobalOnLayoutListener(this); } callback(); } }) }