Generics
Generics
Generics permitem criar uma classe ou método que operam sobre vários tipos de forma que o compilador pode detectar problemas de tipo.
Collections
É o exemplo clássico de generics na biblioteca padrão Java. Exemplo do Wikipedia:
List v = new ArrayList();
v.add("test");
Integer i = (Integer)v.get(0); // Run time error
/////////////
List<String> v = new ArrayList<String>();
v.add("test");
Integer i = v.get(0); // (type error) compilation-time error
Método genérico
public static <T> T primeiro(T[] array) {
return array[0];
}
Geralmente usa-se a letra T
para denotar um tipo genérico.
Método genérico
public static <T> ArrayList<T> encaixota(T valor) {
ArrayList<T> a = new ArrayList<>();
a.add(valor);
return a;
}
Classe genérica
Ver Thinking in Java, p. 440. Classe Holder de automóvel, depois Holder de Object, depois Holder com generics, depois Dupla.
Se você instanciar uma classe genérica sem informar os tipos, assume-se que os tipos são Object
.