class Classe { public Integer numero; }Agora imagine que você precisa de uma classe, identica a anterior mas que armazene um número real:
class Classe { public Float numero; }E imagine que você precisa de diversas classes, com características similares mas tipos diferentes, você acabaria por desenvolver diversas classes com tipos de dados diferentes. Para evitarmos este tipo de coisa, podemos criar classes genéricas:
class Classe<T> { public T numero; }O tipo de número agora não é fixo, será definido na hora que formos instanciarmos um objeto de Classe. Número poderá ser de qualquer tipo não primitivo:
Classe <Integer> cInt = new Classe<Integer>(); Classe <Float> cFloat = new Classe<Float>();Agora em cInt o atributo numero é Integer, em cFloat o atributo numero é Float
public class Box<T> { T lado; public void setLado(T lado){ this.lado = lado; } public T getLado() { return this.lado; } public static void main(String[] args) { Box<Integer> iBox = new Box<Integer>(); Box<Double> dBox = new Box<Double>(); Box<String> sBox = new Box<String>(); iBox.setLado(10); dBox.setLado(2.5); sBox.setLado("grande pra caramba"); } }Bons estudos.
Se precisar de ajuda, fique a vontade para usar nosso grupo de estudos
Bons estudos.