Ответ
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)
- Может иметь методы, но не свойства-состояния