Genéricos em Java

Prof. Marcelo Cohen

08/2013

Genéricos em Java

Versão para impressão


Genéricos


A classe ArrayList


Genéricos


Como?


Convenção

Nome da variável de tipo Significado
E Elemento de uma coleção.
K Chave de um mapa
V Valor em um mapa
T Tipo genérico
S, U Tipos adicionais

Convenção


Instanciação


Exemplos de aplicação


Classe que armazena uma String

public class Dado {
  private String dado;

  public Dado(String d) { dado = d; }

  public String getDado() { return dado; }
}
...
// Uso correto
Dado d = new Dado(“Oi”);
String x = d.getDado();
...
// Uso incorreto: tipo deve ser String
Dado d = new Dado(new Pessoa(“Ze”,20));
Pessoa x = (Pessoa)d.getDado();

Classe genérica, que armazena qualquer tipo

public class Dado<E> {
  private E dado;

  public Dado(E d) { dado = d; }

  public E getDado() { return dado; }
}
...
Dado<String> d = new Dado<>(“Ola”);
String x = d.getDado();
...
Dado<Pessoa> d = new Dado<>(new Pessoa(“Ze”,20));
Pessoa x = d.getDado();
...

Considerações sobre genéricos


Outro exemplo: classe Produto