Что такое Immutable-аннотация

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

Ответ

Immutable-аннотация (@Immutable) используется для пометки классов, которые должны быть неизменяемыми (immutable). Это означает, что после создания объекта его состояние нельзя изменить.

Ключевые требования для immutable-класса:

  • Все поля final (или val в Kotlin)
  • Нет сеттеров
  • Поля тоже должны быть immutable или защищены от изменений

Пример в Kotlin:

@Immutable
data class User(val id: Long, val name: String)

Зачем это нужно?

  • Потокобезопасность (thread-safe)
  • Предсказуемость состояния
  • Упрощение отладки

Используется в библиотеках, например, androidx.annotation или org.jetbrains.annotations.