От Class.newInstance() к рефлексии конструктора
Замените устаревший Class.newInstance() явным поиском и вызовом конструктора.
Plugin plugin = pluginClass.newInstance();
Plugin plugin = pluginClass
.getDeclaredConstructor()
.newInstance();
Поддерживаемый API
Устраняет использование устаревшего Class.newInstance().
Явный конструктор
Запрашиваемая сигнатура видима и может принимать аргументы.
Честные ошибки
Исключения конструктора представлены через InvocationTargetException.
Рекомендуется с момента признания Class.newInstance() устаревшим в JDK 9 (сентябрь 2017 года).
Class.newInstance() признан устаревшим, поскольку позволяет обойти проверку во время компиляции исключений, выбрасываемых конструктором, и поддерживает только конструктор без аргументов. Явный поиск Constructor делает выбранную сигнатуру видимой и сообщает об ошибках рефлексивного вызова с помощью соответствующих исключений рефлексии. Правила модулей и доступа продолжают действовать; этот шаблон не рекомендует обходить инкапсуляцию.