When setting up a click listener in Kotlin, we can write:
rollButton.setOnClickListener(
object: View.OnClickListener {
override fun onClick(v: View?) {
rollDice();
}
}
)
After SAM conversion, we can write:
rollButton.setOnClickListener({ v -> rollDice() })
But I noticed that kotlin also accepts:
rollButton.setOnClickListener(View.OnClickListener() { v -> rollDice() })
as well as
rollButton.setOnClickListener(View.OnClickListener { v -> rollDice() })
I want to know what is happening here? I mean setOnClickListener is supposed to take an implementation of OnClickListener using something like Anonymous class or SAM shorthand. Is this some kind of intermediate stage or what?
Any explanation or link to resources is highly appreciated.