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 Easy Java Magazine
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!

Generics: utilizando em nossos projetos - Revista easy Java Magazine 15 - Parte 2

Apresentação e aplicação de Generics, e porque podemos nos beneficiar ao adotá-lo no desenvolvimento dos nossos programas. Neste artigo introduzimos e explicamos Generics a partir do uso dos seus conceitos em um contexto do dia-a-dia do desenvol





Easy Java Magazine 15

[Artigo disponível no Leitor Digital DevMedia. Clique aqui para acessá-lo]

> Clique aqui para ler todos os artigos da Easy Java Magazine 15


Na primeira parte deste artigo, para introduzir o leitor aos principais conceitos sobre Generics, criamos um aplicativo simples para gerenciar estacionamentos. No sistema, diversos tipos de veículos poderiam ser armazenados, como carros, motocicletas e ônibus. Com o objetivo de demonstrar a possibilidade de inclusão de objetos diferentes de Veiculo no estabelecimento, desenvolvemos a classe Cacamba e cadastramos no estacionamento um objeto deste tipo.

Entretanto, para listar os veículos cadastrados em Estacionamento (por meio do método listarVeiculos()), é necessária a conversão de todos os objetos armazenados no atributo veiculos para Veiculo. Precisamos fazer a troca de um tipo para outro porque os objetos gerenciados por veiculos são implicitamente do tipo Object.

Assim, no momento da leitura dos dados referentes ao elemento Cacamba, devidamente cadastrado em veiculos, uma exceção será lançada na tentativa de conversão deste objeto (ainda com o tipo Object) para Veiculo. A troca de tipos deste elemento provoca uma ClassCastException – exceção lançada ao tentar converter um objeto para um tipo diferente do seu. Neste caso, a troca do tipo Object deveria ser para Cacamba, ao invés de Veiculo.

Nesta segunda parte, apresentaremos Generics e mostraremos como utilizar este poderoso recurso para resolver os problemas apontados na edição anterior e resumidos acima.

Conforme mencionado na parte 1, Generics introduz a verificação, em tempo de compilação, dos tipos manipulados por uma classe. Por exemplo, podemos ter um objeto List gerenciando um elemento do tipo String, e outro controlando, por exemplo, um StringBuffer. Os tipos gerenciados por uma classe são definidos, em Generics, como tipos parametrizados. Neste exemplo, String e StringBuffer são definidos como os tipos parametrizados dos seus respectivos objetos List. Mais detalhes sobre este assunto serão discutidos ao longo da matéria.

Ademais, mostraremos como o uso de Generics reflete na redução de bugs em tempo de execução, empregando a verificação dos tipos gerenciados por uma classe. Apresentaremos também como, a partir da criação dos nossos próprios tipos genéricos, podemos utilizar e reutilizar estas classes genéricas para a criação de objetos com seus respectivos tipos parametrizados. Por exemplo, podemos ter um objeto desta classe genérica gerenciando objetos Integer e outro controlando elementos do tipo Double. Por fim, a aplicação do polimorfismo aos tipos parametrizados também será abordada.

Introdução ao Generics para solucionar o problema

O Generics foi especificado na JSR 014. Na criação desta JSR, um dos objetivos para adicionar este recurso foi incluir verificadores, conhecidos como tipos parametrizados, para explicitar os elementos que podem ser manipulados por uma classe. Por exemplo, podemos declarar um objeto List para fazer operações somente com Strings. Na prática, para aplicar o recurso, após a declaração de List colocamos entre chaves (< >) o tipo String.

A Listagem 1 reflete esta situação. Criamos o objeto listaCidades, do tipo List,  para armazenar nomes de cidades. Ao instanciar este elemento, é necessária a declaração de uma String entre as chaves, como já mencionado anteriormente, como o tipo parametrizado deste elemento. Ainda com o objetivo de demonstrar o uso de Generics, foram criados métodos para inclusão e listagem dos elementos da lista.

 

Listagem 1. AplicacaoListGenerica.java: exemplifica a criação de uma lista para manipulação somente de objetos do tipo String.

package br.com.devmedia.javamagazine.exemplolistgenerics;

 

import"

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 Easy Java Magazine
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Rodrigo D’agostini Peleias
Bacharel em Ciência da Computação pela PUC-SP e possui as certificações SCJA, SCJP 6, SCWCD 5 e OCBCD 5. Foi Embaixador de Campus na Sun Microsystems em 2009 e atualmente é Analista Programador Java na GoPoints, especializada em desenvolvimento de sistemas voltados a Campanha de Incentivos e CRM de ...
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