Type Safety Eclipse Warnings

Ao escrever a seguinte linha no Eclipse:

O Eclipse diz:

O programa compila e roda sem erros, porém fica a curiosidade em saber o porque disto, ou, o que é isto?

Vlw[]´s

Você tinha de ter feito isto:

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

Eu sei, eu sei, eu sei que isso é chato porque tem de repetir um monte de coisas redundantes, tanto é que o Neal Gafter, que foi o cara que tomava conta da equipe do Javac (compilador Java) na época em que foi implementada a parte de generics, propõe agora (que não é mais da Sun) a seguinte sintaxe:

// isto é só uma proposta -  nenhum compilador compila isto:
List<String> lista = new ArrayList&lt&gt();

Mas tem de ser assim e acabou.

Isto é para dizer que eu tenho uma lista de Strings, certo?
Não se pode misturar tipos em uma mesma lista?

[quote=Rage]Isto é para dizer que eu tenho uma lista de Strings, certo?
Não se pode misturar tipos em uma mesma lista?
[/quote]

É claro que sim, se você declarar direito. Exemplo:

List<Object> objetos = new ArrayList<Object>();

objetos.add ("abobrinha");
objetos.add (Integer.valueOf(3));
objetos.add (new java.util.Date());

Isso no Java 1.5 pra frente…
Java 1.4 continua o mesmo List lista = new ArrayList();

Vc pode adicionar na sua lista objetos do mesmo tipo ou que extendem este tipo…