DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!

Artigo Java Magazine 04 - Generics no Java 1.5

Confira nesta edição de Java Magazine uma entrevista Bill Day Java speech, Interface ricas com flash

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

Generics no Java 1.5

Tipos genéricos no projeto Tiger

A introdução de generics no Java 1.5 tem o potencial de reduzir o número de erros e aumentar o reaproveitamento de código em suas aplicações

A tecnologia Java incorpora muitas novidades a cada nova versão: servlets, JSP, EJBs, web services... O conjunto de APIs fica cada vez maior e mais completo. Mas além das bibliotecas e da plataforma, a linguagem Java também sofre mudanças. Isso já aconteceu com a entrada das classes internas (inner classes) no Java 1.1, e as assertions no J2SE 1.4.

Também haverá mudanças na versão 1.5 (codinome Tiger), com lançamento marcado para outubro de 2003. Uma das grandes novidades são os generics. Neste artigo, vamos ver como generics facilitará a programação em Java, com uma abordagem prática.

Programação genérica

Os programadores de C++ logo reconhecerão a semelhança do generics com a STL (Standard Template Library). Esta biblioteca veio para trazer containers ao C++, muito semelhante a API de Collections do Java. Mas não foi só isso: a STL trouxe também os tipos parametrizados.

Generics traz para o Java o conceito de programação com tipos parametrizados. Com o novo recurso, você pode optar por não definir que classe você está tratando ou retornando em determinado método, especificando isso somente na hora de construir uma instância da classe. Você passa um tipo como um parâmetro. Daí o nome “parametrizado”.

Pode parecer complicado, mas imagine que você precise de uma lista de strings. Normalmente, você cria um ArrayList e faz o cast de Object para String no momento de obter o objeto da lista. Isto é uma prática muito comum, mas você nem sempre pode garantir que dentro desse ArrayList encontram-se apenas Strings, tornando o seu cast suscetível ao lançamento ­da mais que comum ClassCastException. A Listagem 1 ilustra esse simples uso.

O conceito de generics vem para evitar este tipo de cast, fazendo com que a checagem dos tipos seja feita em tempo de compilação em vez de execução. Na JSR-14, onde generics para Java é definido, os autores deixam bem claro o seu benefício: adicionar expressividade e segurança ao código, fazendo a escolha do tipo dos parâmetros explícitos (em vez de sempre usar Object) e tornando os casts implícitos.

Vejamos um exemplo prático. Imagine que queremos definir uma ArrayList, só que gostaríamos de deixar explícito que trabalhamos com strings. A Listagem 2 mostra como é simples criar uma ArrayList com essa característica usando generics. Note que, para depois recuperar alguma das strings, não é necessário cast algum. Se você, por exemplo, tentar guardar o retorno do get(0) em um Object, receberá um erro de compilação.

Diminuindo os casts, a programação genérica diminui as checagens de tipo em tempo de execução, passando-as para tempo de compilação. Se, por exemplo, você chamasse o iterator() dessa ArrayList, receberia uma referência para um objeto do tipo Iterator, o que também evitaria casts na hora de chamar o next() do Iterator.

"

A exibição deste artigo foi interrompida.

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Paulo Eduardo Azevedo Silveira
é programador certificado Java, com ampla experiência no desenvolvimento web em Java. Desenvolveu aplicações Java com tibco e SAP/R3 no exterior, pratica Java diariamente e é um dos fundadores do "GUJ-Grupo de Usuários Java" (www.guj.com.br). Atualmente é instrutor de Java pela Sun Education e desen...
O que você achou deste post?

    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03