Skip to main content
Stack Overflow на русском

Вернуться к вопросу

Post Timeline

Источник Ссылка
Nelson Tatius
  • 2.7k
  • 3
  • 32
  • 48

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

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

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

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

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

  1. Почему же всё-таки такое решение было принято?
  2. Как узнать может ли функция изменить состояние объекта?
  3. Как написать функцию, чтобы люди, использующие её, не опасались изменения передаваемых объектов?
  4. Аналогично для класса, чтобы у людей не возникало проблем с его использованием.
Источник Ссылка
Nelson Tatius
  • 2.7k
  • 3
  • 32
  • 48

Java: immutable object

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

  1. Почему же всё-таки такое решение было принято?
  2. Как узнать может ли функция изменить состояние объекта?
  3. Как написать функцию, чтобы люди, использующие её, не опасались изменения передаваемых объектов?
  4. Аналогично для класса, чтобы у людей не возникало проблем с его использованием.
lang-java

AltStyle によって変換されたページ (->オリジナル) /