Ответ
Kotlin extensions компилируются в статические методы в Java.
Например, такой extension:
fun String.addExclamation(): String = "$this!"
Будет скомпилирован в Java как:
public final class StringExtensionsKt {
public static String addExclamation(String receiver) {
return receiver + "!";
}
}
Ключевые моменты:
- Создается класс-утилита с суффиксом
Ktпо умолчанию - Метод становится статическим
- Receiver-параметр становится первым параметром метода
- Если extension объявлен внутри класса, то класс-утилита будет вложенным