Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Alguma alternativa ao método deprecado?

Na aula, foi usado o método deprecado newInstance, teria alguma alternativa que se diria "mais adequada", que faria a mesma coisa demonstrada na aula?

1 resposta
solução!

Olá! Tudo bem? Esse assunto que envolve a manipulação de classes, construtores, métodos, anotações e entre outros se chama Reflection, tem alguns cursos aqui na Alura sobre isso. O método newInstance em si não é deprecado, somente a forma como ele é usado. O método newInstance basicamente busca o construtor da classe e cria uma instância com os parâmetros passados a ele, o que faz ele ser deprecado quando chamado diretamente pela classe é que existe a possibilidade de uma classe ter mais de um construtor ou ter um construtor privado, então para usar esse método da melhor forma, é só pegar o construtor declarado, com o método getDeclaredConstructor:

String nomeClasse = "br.com.alura.gerenciamento.acoes." + acao;
Class classe = Class.forName(nomeClasse);

// Pegando o construtor e então pedindo uma nova instância para ele, e não diretamente para a classe
acaoExe = (AcaoExecutavel) classe.getDeclaredConstructor().newInstance(); 

Essa é uma outra forma mais adequada de fazer isso, porém existem várias outras, se quiser saber mais tem dois cursos de Java Reflection aqui na Alura. Espero ter ajudado!