De Class.newInstance() a reflexión de constructores
Reemplaza Class.newInstance(), obsoleto, por la búsqueda e invocación explícitas del constructor.
Plugin plugin = pluginClass.newInstance();
Plugin plugin = pluginClass
.getDeclaredConstructor()
.newInstance();
API compatible
Elimina el uso de Class.newInstance(), que está obsoleto.
Constructor explícito
La firma solicitada es visible y puede aceptar argumentos.
Fallos transparentes
Las excepciones del constructor se representan mediante InvocationTargetException.
Recomendado desde que Class.newInstance() quedó obsoleto en JDK 9 (septiembre de 2017).
Class.newInstance() está obsoleto porque puede eludir la comprobación en compilación de las excepciones lanzadas por el constructor y solo admite un constructor sin argumentos. La búsqueda explícita del constructor hace visible la firma elegida e informa de los fallos de invocación reflexiva mediante las excepciones de reflexión adecuadas. Las reglas de módulos y acceso siguen aplicándose; este patrón no recomienda eludir la encapsulación.