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

Dúvidas sobre o escopo de método

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 ?

1 resposta
solução!

Olá Ney, tudo bem?

compreendi sua duvida, mas vamos pensar diferente. A ideia desse código não seria ficar em um loop até encontrar um valor que seja diferente de null para tipoDestino?, acontecendo isso você teria uma tratativa para a situação, correto?

Se essa for a ideia o comando acima irá funcionar corretamente. Caso contrario você terá que reavaliar colocação do tipoDestino no retorno do if.