O que significa isso ArrayList<String>?

Galera, eu nunca vi isso na minha vida:

ArrayList<String> lista = new ArrayList<String>();

O que significa aquilo? É como se fosse um cast?

Generics:
http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html

Em que mundo você vive?

Isso se chama “Generics”. Serve para limitar o tipo de objetos que você pode pôr dentro de um ArrayList, e para evitar pôr um monte de “casts” no seu código. E a forma certa de declaração, na verdade, é:

List<String> lista = new ArrayList<String>();

lista.add ("abacaxi");
String fruta = lista.get(0); // veja que não preciso mencionar o cast
lista.add (new Integer (42)); // isto vai dar erro de compilação porque Integer != String

Entendi. Valeu.

Eita, e olha que isso já é velho, :roll: