Avaliando o método destacado na aula , surgiu uma dúvida :
observe o começo do código : private Map<Class, Class> mapaDeTipos = new HashMap<>(); public Object getInstancia(Class<?> tipoFonte) {
Class<?> tipoDestino = mapaDeTipos.get(tipoFonte);
if (tipoDestino != null) {
return getInstancia(tipoDestino);
}
Não temos um looping aqui ? veja :
1- Eu atribuo o valor da minha variável e procuro um valor para ela no mapeamento , beleza, entendi 2- Agora eu vou para a condição do if, e como eu encontrei meu valor no map, não vai ser nulo, show de bolo 3-Mas então, cara pálida , o problema está aqui, quando eu retornar o getInstancia ele vai voltar para o mesmos passos , não?
Eu pensei em um cenário aqui, veja :
No caso eu vou ter mapeado um tipo fonte Produto > Produtomock
beleza, entrei no mapeamento , peguei o ProdutoMock, passei pelo if retornei ProdutoMock , agora sim : Como meu mapeamento não tem o produtoMOCK mas sim Poduto, o meu if vai dar null . Seria isso ?