Ответ
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.