Olá!
Class<?> tipoDoParametro = param.getType();
O param.getType
retorna qual é o tipo do objeto no laço atual do seu 'for'. A variável tipoDoParametro
recebe esse tipo e retém essa informação
params.add(getInstancia(tipoDoParametro));
params
é a lista que foi declarada antes do ciclo do for
. Ela guarda objetos do tipo Object. Isso significa que ela pode conter instâncias de qualquer classe, uma vez que todas as classes em Java herdam implicitamente da classe Object. Portanto, a lista 'params' pode conter instâncias de diferentes classes, pois todas elas são tratadas como objetos genéricos do tipo Object.
Agora que você identificou qual é o tipo de objeto e reteve ele na variável tipoDoParâmetro
, você pode finalmente adicionar o objeto à sua lista de objetos params
.
getInstancia()
Eu não conheço a lógica por trá desse projeto, mas acredito que esse esse método cria a instância de um objeto e retorna, basta você passar como parâmetro para ele qual é o tipo do objeto. No caso, o tipo do objeto você tem guardado na variável tipoDoParametro
, por isso ela é passada como parâmetro do método getInstancia()
. Sendo assim, acredito que esse método seria a mesma coisa que fazer isso:
params.add(new Objetc());
Na sua operação acontece quase a mesma coisa, só que de forma mais abstrata, pois você não sabe com qual tipo de objeto está lidando. Você captura o tipo de objeto, passa para o getInstancia
, ele instancia esse objeto e finalmente você guarda a instância na sua lista.
Digamos que o tipo de objeto que a variável tipoDoParametro
capturou é um Integer
, o trecho params.add(getInstancia(tipoDoParametro));
poderia ser traduzido em params.add(new Integer());"
Espero que eu tenha entendido certo e possa ter ajudado! o/