Tooling Intermedio

Reemplaza Class.newInstance(), obsoleto, por la búsqueda e invocación explícitas del constructor.

✕ Deprecated Class.newInstance()
Plugin plugin = pluginClass.newInstance();
✓ Constructor reflection
Plugin plugin = pluginClass
        .getDeclaredConstructor()
        .newInstance();
¿Ves un problema con este código? Cuéntanos.
✅

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.

Enfoque Antiguo
Class.newInstance()
Enfoque Moderno
Búsqueda explícita del constructor
Desde JDK
9
Dificultad
Intermedio
De Class.newInstance() a reflexión de constructores
Disponible

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.