Есть ли синтаксис списка инициализации членов в Java, как C ++?

Я программист на Java, в настоящее время читаю книгу GoF по шаблонам проектирования, где приведены примеры в C ++ и синтаксисе Smalltalk. Я столкнулся с определенным синтаксисом в C ++, который я обнаружил, чтобы называться список инициализации членов . Из приведенных ответов кажется, что использование списка инициализации членов — это хорошая практика (гораздо более эффективная), чем использование присваиваний для переменных членов. Есть ли что-то похожее в Java? Если нет, то должна быть веская причина, почему Java-дизайнеры не включили эту функцию. Что ты думаешь об этом?

5

Решение

Причины, почему это необходимо в C ++, к счастью, не относятся к Java.

Поля являются только ссылками или примитивами, поэтому вам не нужно беспокоиться о том, что вы создаете объекты полей и выполняете над ними операции присваивания.

Java позволяет назначать конечные поля только один раз в теле конструктора (хотя спецификация этого довольно многословна).

3

Другие решения

Нет, вам нужно инициализировать элементы в их объявлении, конструкторе (ах) или в методе инициализации, вызываемом из конструкторов.

(Предполагая, что членам нужна инициализация сверх их значений по умолчанию.)

1

По вопросам рекламы [email protected]