De Class.newInstance() à la réflexion sur les constructeurs
Remplacez Class.newInstance(), obsolète, par la recherche et l’invocation explicites du constructeur.
Plugin plugin = pluginClass.newInstance();
Plugin plugin = pluginClass
.getDeclaredConstructor()
.newInstance();
API prise en charge
Supprime l’utilisation de Class.newInstance(), qui est obsolète.
Constructeur explicite
La signature demandée est visible et peut accepter des arguments.
Échecs transparents
Les exceptions du constructeur sont représentées par InvocationTargetException.
Recommandé depuis que Class.newInstance() est devenue obsolète dans le JDK 9 (septembre 2017).
Class.newInstance() est obsolète, car cette méthode peut contourner la vérification à la compilation des exceptions levées par le constructeur et ne prend en charge qu’un constructeur sans argument. La recherche explicite du constructeur rend visible la signature choisie et signale les échecs d’invocation réflexive par les exceptions de réflexion appropriées. Les règles relatives aux modules et aux accès restent applicables ; ce modèle ne recommande pas de contourner l’encapsulation.