Colecoes

Generics

Java Collections - Generics

Generics é uma funcionalidade incorporada ao Java a partir da versão 5.0, permitindo aos programadores escreverem métodos genéricos. Os parâmetros dos métodos, variáveis locais e o tipo de retorno podem ser definidos na chamada do método e possibilita ao mesmo método ser invocado usando-se tipos distintos (sem precisar sobrescrevê-lo). Permite também a definição de classes genéricas onde os atributos da classe podem ser definidos no momento da instanciação do objeto. Generics em Java oferece os mesmos recursos dos Templates em C++.

IMG

Quais são os benefícios quando se utiliza o recurso de generics em uma coleção?

  1. Segurança que os elementos adicionados serão sempre do mesmo do tipo
  2. Garantia que os elementos que serão obtidos também serão do mesmo
  3. Evita criar sobrecarga de métodos para atender a variação dos possíveis tipos de elementos

Conforme imagem abaixo, iremos ilustrar a aplicabilidade de generics em uma fábrica que confecciona engradados de refrigerante.

IMG

import java.util.ArrayList;
import java.util.List;

public class SemGenerics {
    public static void main(String[] args) {
        List engradado01 = new ArrayList();
        engradado01.add(new CocaCola());
        engradado01.add(new FantaLaranja());

        for(Object item: engradado01){
            System.out.println("Este item é uma coca-cola ou fanta laranja? " + item.getClass().getSimpleName());
        }
    }
}

class CocaCola{ }
class FantaLaranja{}