Java Core trainee

Если поле не final при constructor injection — будет ошибка?

Ответ

Нет. Spring отлично инжектит и в не-final поля. Но смысл конструктора частично теряется — поле потом можно перезаписать. Конвенция: всегда final.

Разбор: Ошибки нет: Spring прекрасно внедряет зависимости и в не-final поля через конструктор, final — лишь конвенция для неизменяемости и защиты от случайной перезаписи. Дистракторы ложно приписывают обязательность final самому Spring или компилятору; ни BeanCreationException, ни ошибки компиляции, ни игнорирования инъекции при отсутствии final не происходит.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться