Что такое Value Class

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

Ответ

Value Class — это класс в Kotlin, помеченный аннотацией @JvmInline, который оборачивает одно значение, оптимизируя его хранение (избегая аллокации объекта). Используется для повышения безопасности типов без накладных расходов.

Пример:

@JvmInline
value class Password(val value: String)

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

// Использование (на уровне байт-кода — обычная String)
login(Password("secret123"))

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

  • Может содержать только один параметр в конструкторе
  • Не может быть null (используйте value class? для nullable)
  • Разворачивается в runtime (как примитивы в Java)
  • Может иметь методы, но не свойства-состояния