Artigo Java Magazine 16 - Genéricos no J2SE 5.0

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (1)  (0)

As novidades da linguagem em tipos genéricos. Neste artigo, tentarei explorar as características e conseqüências mais marcantes do novo paradigma.

Esse artigo faz parte da revista Java Magazine edição 16. Clique aqui para ler todos os artigos desta edição

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. Estamos acostumados com uma linguagem quase “congelada” desde 1995 e, enquanto vários outros recursos sintáticos do Tiger (como o for estendido ou o static import) são extremamente simples e não tomarão mais de alguns minutos de aprendizado, os tipos genéricos requerem uma atenção séria.

  Tipos genéricos já foram apresentados no artigo “Generics no Java 1.5” (na Edição 3, quando o recurso ainda estava em fase bastante preliminar) e mencionados em outros artigos meus sobre o Tiger. Tutoriais e introduções já estão se tornando comuns, mas a simplicidade aparente do recurso – até a especificação formal da JSR-14 (“Add[ing] Generic Types to the Java Programming Language”) é surpreendentemente legível – pode ser enganosa.

  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:

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?