Во что преобразуются Extensions из Kotlin в Java

«Во что преобразуются Extensions из Kotlin в Java» — вопрос из категории Kotlin, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Kotlin extensions компилируются в статические методы в Java.

Например, такой extension:

fun String.addExclamation(): String = "$this!"

Будет скомпилирован в Java как:

public final class StringExtensionsKt {
    public static String addExclamation(String receiver) {
        return receiver + "!";
    }
}

Ключевые моменты:

  1. Создается класс-утилита с суффиксом Kt по умолчанию
  2. Метод становится статическим
  3. Receiver-параметр становится первым параметром метода
  4. Если extension объявлен внутри класса, то класс-утилита будет вложенным