не, я не потроллить, хотя наверное со стороны похоже на троллинг. Ну если по шагам разбираться.
Например
1. new
для создания в Java плохо - недостаточно гибко, приходится писать свои создатели объектов.
2. Конструктором, даже внутренним, лучше не пользоваться, так как в тех механизмах, которые мы построили для обхода пункта 1. могут быть проблемы вызванные порядком загрузки кода. Но можно написать кастомные гибкие конструкторы пост-иниты.
Ну вот для начала две базовые концепции языка уже перечеркнули. Может нужен SpringLang, где эти вещи уже будут на уровне языка?