Generics

700 palavras 3 páginas
Introdução
O recurso de classes genéricas foi introduzido na versão 5 do Java SE. Este recurso permite que você escreva código mais seguro e fácil de ler em comparação com o código que faz uso de variáveis do tipo Object e de casts(conversões “forçadas” de tipos). Programação genérica é a escrita de código que pode ser reutilizado por objetos de diferentes tipos.

Inconvenientes antes da programação genérica
Antes das classes genéricas serem adicionadas à linguagem Java, este tipo de programação era feito utilizando herança. A classe ArrayList, por exemplo, havia sido desenvolvida para armazenar instâncias de qualquer classe-filha de Object. O exemplo abaixo supõe que já existem no projeto as classes Aeronave e Cachorro:
ArrayList listaAero = new ArrayList();
Aeronave a = new Aeronave(); listaAero.add(a); Aeronave b = new Aeronave(); listaAero.add(b); ArrayList listaCaes = new ArrayList();
Cachorro c = new Cachorro(); listaCaes.add(c); Cachorro d = new Cachorro(); listaCaes.add(d); Um inconveniente desta abordagem é a necessidade de realizar um cast para recuperar um valor da lista:
Aeronave x = (Aeronave) listaAero.get(0);

O usual é o programador utilizar cada lista para armazenar instâncias de um mesmo tipo. No entanto, nada impede que ele armazene instâncias de diferentes tipos em uma mesma lista:
ArrayList lista = new ArrayList();
Aeronave a = new Aeronave(); lista.add(a); Cachorro c = new Cachorro(); lista.add(c); // a linha abaixo irá gerar um erro somente na execução
Aeronave x = (Aeronave) lista.get(1);

A compilação do código acima não irá gerar nenhum erro, mas ocorrerá um erro durante a execução devido ao casting.

A solução: type parameters
A partir da versão 5 do Java SE, a classe ArrayList passou a ter um type parameter que indica o tipo do elemento que será armazenado na lista:
ArrayList listaAeronave = new ArrayList();

Isto torna o código mais fácil de ler, pois deixa claro que esta lista

Relacionados

  • A GENERIC CONCEPT OF MARKETING
    557 palavras | 3 páginas
  • Fileupload com jquery e generic handler asp.net
    437 palavras | 2 páginas
  • Apostila GMT generic maps tools em portugues
    8007 palavras | 33 páginas
  • Java
    781 palavras | 4 páginas
  • eletronica
    1066 palavras | 5 páginas
  • Configuração do grub linux
    382 palavras | 2 páginas
  • Cmmi
    1667 palavras | 7 páginas
  • Estratificacao Social
    1714 palavras | 7 páginas
  • Trabalho
    251 palavras | 2 páginas
  • RELATORIO DE SEGURO DE COMPUTADORES
    250 palavras | 1 página