Я знаю обычные причины, которые относятся к общим неизменяемым классам, а именно:
- не может меняться как побочный эффект
- легко рассуждать о своем состоянии
- по сути безопасный поток
- Не нужно предоставлять конструктор клонов/копий/factory
- кэширование экземпляров
- нет необходимости в защищенных копиях.
Однако классы-оболочки представляют собой примитивные типы, а примитивные типы изменяемы. Почему же классы-оболочки не изменяются?