Genéricos no J2SE 5.0
As novidades da linguagem em tipos genéricos etc.
De todas as novidades que já cobrimos do J2SE 5.0 (“Tiger”), o recurso de tipos genéricos é, sem dúvida, o mais significativo – em várias medidas. É o mais esperado (há anos em gestação) e o de maior impacto na linguagem. E é talvez o item que nos tomará mais tempo para assimilar completamente.
Tipos genéricos já foram apresentados no artigo “Generics no Java
Não que os tipos genéricos sejam tão difíceis; é que não se trata apenas de um novo conjunto de sintaxes e funcionalidades, mas sim de uma extensão do paradigma de programação orientada a objetos de Java. Dessa forma, a dificuldade de aprendizado é mais uma questão de se habituar a novos conceitos até que estes se tornem “intuitivos”. Neste artigo, tentarei explorar as características e conseqüências mais marcantes do novo paradigma.
Objetivos e Alô Mundo
Para recapitular um pouco da teoria de linguagens de programação, consulte o quadro “Tipos e Sistemas de Tipos”, que define conceitos relevantes para este artigo. Partindo daí, começamos justificando a necessidade dos tipos genéricos.
Observe o trecho de código a seguir:
Map prodMap = new HashMap();
List frutas = new ArrayList();
frutas.add(new Produto(“Banana”));
prodMap.put(“Frutaria”, frutas);
Produto banana = (Produto)((List)prodMap.get(“Frutaria”)).get(0);
prodMap.put(new Integer(0), “Erro”); // Ok!
Este código manipula uma estrutura de dados que indexa listas de produtos pelo nome do fornecedor. A versão com tipos genéricos ficaria assim: