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

Servlet parte 2: 09 API de Reflexão

Olá nico.

Você apresentou um pouco mais sobre reflexão no java. Notei algumas classes possuem um método estático newInstance. ou NomeDaClasse.class.newInstance(). Retornando uma nova instância da classe em questão. Porém tenho o problema do construtor.

try {
    Class cls = Class.forName("br.com.alura.models.bytebank.ContaCorrente");
    ContaCorrente cc = (ContaCorrente) cls.newInstance();
} 
catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) {
    System.out.println(e.getMessage());
}

Nesse exemplo como poderia passar o número da agência e conta, que seriam passados no construtor? Sendo que utilizar os getter e setter individualmente aumentariam o número de linhas de código.

Outro motivo para usar o newInstance seria a possibilidade de fazer um encadeamento de métodos ao invés de ficar atribuindo variáveis.

Obrigado pela atenção.

At Michael.

1 resposta
solução!

Boa noite, Michael! Como vai?

Vc vai precisar usar o método getDeclaredConstructor(Class<?> ...tiposArgs) da classe Class<T> passando como parâmetro as respectivas classes dos parâmetros do construtor! Isso é tratado nesse capítulo da parte 1 do curso de reflection com Java aqui da Alura!

Os cursos de reflection em Java se dividem em duas partes e tratam somente desse vasto assunto e de outros que são ligados à reflection, como criação de anotations, injeção de depentências e muito mais! Seguem os links!

Java Reflection parte 1: Entendendo a metaprogramação

Java Reflection parte 2: Anotações e Injeção de Dependências

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!