Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida quanto a assinatura do método quando utilizamos Upper Bounded Wildcards.

public <T, K extends T> void registra(Class<T> tipoFonte, Class<K> tipoDestino) { ... }

Quanto a assinatura do método acima: Quando utilizamos o Upper Bounded Wildcards somos obrigados a colocar antes do retorno do método (nesse caso, antes do void) o código < T, K extends T >?

Prometo que amanhã estarei vendo os links da Oracle onde são abordados os tópicos do Generics para me aprofundar ainda mais haha.

Grande abraço!

2 respostas
solução!

Carlos ,

Acredito que os generics T e K não estejam definidos na classe , então a classe não seria genérica , mas o método sim, e por o método ser genérico a definição dos tipos genéricos tem que ficar antes do retorno do método independente dos Bounds.(2º parágrafo , https://docs.oracle.com/javase/tutorial/java/generics/methods.html)

E essa parte fale de boas práticas no uso de Bounds (https://docs.oracle.com/javase/tutorial/java/generics/wildcardGuidelines.html)

Opa, Carlos! Boa tarde! Como vai?

Não é obrigatório! Mas se vc tirar essa parte a que se referiu da assinatura do método, daí terá obrigatoriamente que colocar na assinatura da classe, dessa forma:

public class ContainerIoCSimples <T, K extends T> {
     // restante do código.
}

A vantagem dessa forma é que vc poderia utilizar os tipos T e K em qualquer método da classe. No exemplo do curso, como eu só os usaria em um método mesmo, então utilizei a forma que vc mostrou!

Qualquer coisa é só falar!

Obs.: Não deixe mesmo de olhar os links da Oracle! Tem mta coisa boa lá tbm!

Grande abraço e bons estudos, meu aluno!