2.11. Недостаточная инициализация

Все методы так или иначе вызываются после конструктора. Это, в частности, означает, что после создания объекта он сразу должен быть готов к работе. Если конструктор не инициализирует объект полностью, это может привести к ошибкам. Такая опасность известна как «недостаточная инициализация» [3].

Лучше всего объявить все возможные поля как final (см. ниже). Это заставит разработчика проинициализировать их все в конструкторе.

Помните, что выносить инициализацию в отдельный метод и вызывать его в конструкторе можно, только если этот метод определен как окончательный (final), иначе переопределение этого метода в подклассах может привести к ошибкам.