Java: immutable object

Рейтинг: 3Ответов: 3Опубликовано: 12.02.2011

Наверное, как и всякий программист, переходящий с C++ на Java, столкнулся с проблемой отсутствия плюсового аналога константных объектов.
Конечно, понятно, что можно писать immutable интерфейсы, или дополнительную immutable версию нужного класса, или создавать копию объекта перед передачей его в функцию, или многое много другое. Но раз уж в Java нет для этого специальных средств - наверное, это было обдуманное решение. Так вот может кто-нибудь грамотно разъяснить следующие вопросы:
1) Почему же всё-таки такое решение было принято?
2) Как узнать может ли функция изменить состояние объекта?
3) Как написать функцию, чтобы люди, использующие её, не опасались изменения передаваемых объектов?
4) Аналогично для класса, чтобы у людей не возникало проблем с его использованием.

Ответы

Ответов пока нет.