В Android Studio вы можете использовать Инструменты -> Kotlin -> Показать Kotlin Байт-код, а затем Декомпилировать, чтобы увидеть, как может выглядеть соответствующий код Java.
Вы будете затем посмотрите, что color
фактически превращается в final IntRef color = new IntRef();
, где IntRef
- это класс во время выполнения Kotlin, в котором есть член publi c int element
, содержащий фактическое значение.
color
- это final
ссылка на объект, ваш OnCheckedChangeListener
может захватить его просто отлично. Однако член int
не является final
, поэтому вы можете назначить его (компилятор превращает ваш color = index
в color.element = index;
).