Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

ArrayList

Ola Pessoal,

Uma duvida, talvez simploria, mas na aula o Paulo disse que deveria fazer, como segue abaixo:

ArrayList aulas = new ArrayList<>();

porem, gostaria de saber, pq nao poderiamos fazer como segue:

ArrayList aulas = new ArrayList<>();**

obrigado

2 respostas

Fala Everson, tudo certo?

Na aula o Paulo sugere que utilizemos a instrução

List<?> aulas = new ArrayList<>()

como uma boa prática de polimorfismo. Não há nada de errado com a utilização de

ArrayList<?> aulas = new ArrayList<>();

pois o código ainda instancia uma ArrayList e nos deixa utilizar com todas suas funcionalidades.

A ideia por traz da declaração polimórfica da List é que em algumas situações é benéfico usar a ArrayList, em outras é melhor usar a LinkedList e nem sempre é claro a primeiro momento qual lista devemos utilizar no nosso código. Quando declaramos sem condicionar a variável ou atributo à uma lista específica, isso nos permite que façamos essa troca, mudando apenas uma palavra no código, e sem alterar seu comportamento, apenas aumentando a sua performance baseado no tipo de lista escolhido!

Com o tempo e experiência, acaba as vezes ficando até mais direto saber qual tipo de lista usar, e nesses casos de certeza sobre qual tipo usar, não há problema nenhum em fazer da segunda maneira, ainda assim é uma boa prática manter a declaração como no primeiro exemplo pois facilita a manutenção do código e diminui o acoplamento!

Em caso de dúvidas, estou por aqui.

Um grande abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!
solução!

Grande Arthur

obrigado e desculpe pela pergunta, fiz ela errada...

Minha duvida é pq devemos no caso fazer assim:

ArrayList aulas = new ArrayList<>();

e nao assim:

ArrayList aulas = new ArrayList<>();

Obrigado cara

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software