Когда мы слышим искусственный интеллект, в памяти всплывают не учебники, а сцены из фантастики. В книгах и фильмах ИИ всегда был больше, чем просто программа. В «2001: Космическая одиссея» HAL 9000 рассуждал и принимал решения, Терминатор показал пугающий образ восстания машин, у Азимова роботы жили по трём законам робототехники и спорили с людьми о морали.
Многие разработчики используют рефлексию (setAccessible(true)) для изменения приватных полей, но начиная с Java 9 это уже не так просто. Доступ к setAccessible(true) ограничен модульной системой, а с каждым новым релизом Java эта лазейка становится сложнее. Да и ломать инкапсуляцию — это очень плохая идея.
Хотя @PostConstruct и @PreDestroy долгое время были надежными инструментами, они имеют ряд ограничений: