Vc tá chamando o makenoise do objeto animal. Só que animal é List e lista não estende animal e sim o seu tipo parametrizado.
Na vedd nao entendi o que vc ta querendo fazer .
L
lucaspolo
Veja bem, dentro da classe Doctor temos o método tratarAnimal. Este método recebe um list<? extends Animal>. Logo após ele chama um método de um objeto dentro de tratarAnimal.
Qual é o tipo deste objeto?
Este objeto possui este método que está sendo chamado?
O problema tem realmente algo a ver com o coringa do Generics?
Observe isso, nunca fiz o exame, mas sei que eles capricham na hora de gerar um código que não compila devido a outros problemas para pegar na sua atenção.
F
felipes01
Vejam o que eu tentei testar com esse codigo e passar um list poliformico assim, poderia passar qualquer tipo parametizado que estendesse animal como ex: e seria possivel no metodo chamar o metodo makenoise que foi implementado em animal por isso tanto Dog quanto Cat teria como chamar esse metodo.
Por exemplo esse trechos de codigo usa o mesmo conceito e funciona:
Ou seja eu consigo passar para o metodo um list ou e chamar o metodo size neles de forma poliformica, porém chamar o metodo makenoise que foi implementado em Animal eu não consigo chamar, pode ate ser um erro besta mais não consegui entender.
Você não está chamando o método de uma classe que estende Animal. Você está chamando esse método em um Objeto do tipo List. Você tem que fazer uma iteração nessa lista para pegar cada objeto contido nela e executar o método.
F
felipes01
Nossa cara realmente, e que estava escrevendo direto no notepad que acho melhor para assimilar de verdade e não percebi que não estava fazendo um get no conjunto para ai sim utilizar a referencia a um objeto animal. Vlw.