SAM変換内で無名クラスのthisにアクセスしたい
無名クラス(オブジェクト?)内で this キーワードを使うと、その無名オブジェクトが取得できますが、SAM変換されたブロック内で this を書くと、外側のクラスの this になってしまいます。
SAM変換内で無名クラスのオブジェクトにアクセスするにはどうすればいいでしょうか?
class Foo(context: Context) {
val button = Button(context)
init {
button.setOnClickListener(object : View.OnClickListener {
override fun onClick(view: View?) {
this // これはView.OnClickListener
this@Foo // Fooにもアクセスできる
}
})
button.setOnClickListener {
this // これはFooになる
// View.OnClickListenerにアクセスする方法が不明!!!
}
}
}