Tooling Intermediário

Substitua o Class.newInstance() obsoleto pela busca e invocação explícitas do construtor.

✕ Deprecated Class.newInstance()
Plugin plugin = pluginClass.newInstance();
✓ Constructor reflection
Plugin plugin = pluginClass
        .getDeclaredConstructor()
        .newInstance();
Viu um problema com este código? Nos avise.
✅

API suportada

Remove o uso do Class.newInstance() descontinuado.

🎯

Construtor explícito

A assinatura solicitada fica visível e pode aceitar argumentos.

🛡

Falhas transparentes

Exceções do construtor são representadas por InvocationTargetException.

Abordagem Antiga
Class.newInstance()
Abordagem Moderna
Busca explícita do construtor
Desde o JDK
9
Dificuldade
Intermediário
De Class.newInstance() para reflexão de construtor
Disponível

Recomendado desde que Class.newInstance() foi descontinuado no JDK 9 (setembro de 2017).

Class.newInstance() foi descontinuado porque pode ignorar a verificação em tempo de compilação das exceções lançadas pelo construtor e só oferece suporte a um construtor sem argumentos. A busca explícita do construtor torna visível a assinatura selecionada e relata falhas da invocação reflexiva por meio das exceções de reflexão adequadas. As regras de módulos e acesso continuam válidas; este padrão não recomenda contornar o encapsulamento.