Class.newInstance() durch Konstruktorreflexion ersetzen
Das veraltete Class.newInstance() durch explizite Konstruktorsuche und -aufruf ersetzen.
Plugin plugin = pluginClass.newInstance();
Plugin plugin = pluginClass
.getDeclaredConstructor()
.newInstance();
Unterstützte API
Vermeidet das veraltete Class.newInstance().
Expliziter Konstruktor
Die gewünschte Signatur ist sichtbar und kann Argumente annehmen.
Ehrliche Fehler
Konstruktorausnahmen werden durch InvocationTargetException dargestellt.
Empfohlen, seit Class.newInstance() in JDK 9 (September 2017) als veraltet markiert wurde.
Class.newInstance() ist veraltet, weil es die Prüfung der vom Konstruktor ausgelösten Ausnahmen zur Kompilierzeit umgehen kann und nur parameterlose Konstruktoren unterstützt. Die explizite Konstruktorsuche macht die gewählte Signatur sichtbar und meldet Fehler beim reflektiven Aufruf über die passenden Reflexionsausnahmen. Modul- und Zugriffsregeln gelten weiterhin; dieses Muster empfiehlt nicht, die Kapselung zu umgehen.