Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Generics no new do construtor

Eu não entendi muito bem a diferença dos códigos abaixo:

1.

List<Number> lista = new ArrayList();

2.

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

3.

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

Tendo em vista que nos 3 casos o código compila e executa normalmente (somente no primeiro caso, que fica com warning mas roda normal mesmo assim), qual seria a melhor forma de se fazer no dia a dia?

Eu optaria sempre pela terceira opção, deixando explicito para qualquer outro desevolvedor que o ArrayList é um Number. Mas isso é realmente necessário? Se nesse caso acima não é necessário, em qual caso seria importante deixar o generics explicito nos dois lados?

1 resposta
solução!

A partir do Java 7 você não é mais obrigado a fazer isso:

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

Antes do 7 só dava para fazer da forma acima.

Na pratica não tem diferença de um código para o outro, fica a critério do desenvolvedor.