Considere o seguinte programa escrito em Java:
import java.util.ArrayList;
import java.util.List;
public class Programa {
public static void main(String[] args) {
List lst = new ArrayList();
lst.add("Java");
lst.add(new Double(1.5));
}
}
É possível inserir objetos de qualquer tipo na lista lst, cabendo ao programador converter os objetos de volta aos seus respectivos tipos ao obtê-los na lista. A partir do Java 5, podemos usar o recurso de tipos genéricos (generics) para restringir as listas a um determinado tipo de objetos (e não qualquer Object). Considerando também os avanços obtidos no Java 7, para restringirmos a lista lst ao tipo String, fazendo com que o comando que adiciona à lst um objeto do tipo Double cause erro de compilação, o comando que define a variável lst e cria o objeto ArrayList (primeiro comando do método main() no programa acima) deve ser reescrito como:
List lst = new ArrayList<>();
List[String] lst = new ArrayList[String]();
List(String) lst = new ArrayList(String)();
StringList lst = new StringArrayList();
List lst = new ArrayList();