Cast e Generics: warning no Eclipse

HttpSession session = request.getSession();
Map <Integer,Servico>listaServicos = (HashMap<Integer,Servico>)session.getAttribute( "listaServicos" );

Alguem sabe por que o codigo acima da um warning no Eclipse ?

Eu preciso fazer o cast porque a sessao retorna sempre um Object.

Existe uma forma mais adequada de tratar essa situcao ao se usar Generics ?

Dá um warning sempre, e ele não pode ser evitado. Você pode no máximo silenciá-lo:

@SuppressWarnings ("checked")
private void suaFuncao () {
....
 HttpSession session = request.getSession();
 Map <Integer,Servico>listaServicos = (HashMap<Integer,Servico>)session.getAttribute( "listaServicos" );
....
 }

Ok. :thumbup:
Entao, pelo visto, e um bug no Eclipse … menos mal, pensei que tinha algo errado

Não é um bug do Eclipse: é uma forma de você anotar no seu código que você está fazendo alguma coisa “errada”, ou seja, que está violando o sistema de Generics de propósito - você está declarando que sabe o que está acontecendo - ou seja, cast para algo que pode ser que não seja um HashMap<Integer,Servico> - e que assuma as conseqüências.