Что такое inline class в Kotlin

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

Ответ

Inline классы в Kotlin — это обёртки над примитивными типами или другими классами, которые не создают дополнительных накладных расходов во время выполнения, так как компилятор «разворачивает» их в базовый тип. Они помогают улучшить типобезопасность без потери производительности.

Пример:

inline class Password(val value: String)

fun login(password: Password) { ... }

// Использование
val securePassword = Password("12345")
login(securePassword) // ОК
login("12345") // Ошибка компиляции

Особенности:

  • Должны иметь ровно одно свойство в конструкторе
  • Не могут быть null (если не обёрнуты в nullable-тип)
  • Поддерживают методы и свойства, но не могут иметь init-блоки