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

Exemplo de problemas ao não usar List como referência

Seria possível exemplificar um(ou mais ) problema(s) que poderia(m) acontecer caso eu não usasse List como referência para aulas?

Por exemplo:

usar isso:

ArrayList<> aluas = new ArrayList<>();

no lugar disso:

List<> aluas = new ArrayList<>();
5 respostas

Se você usar o

List<> aluas = new ArrayList<>();

Isso seria sua pergunta? O erro não estou lembrado agora mas é só fazer o teste, Se você passar nada no paramentro do List, não ira saber que doque é essa lista. Agora se você referenciar

List<Aula> aluas = new ArrayList<Aula>();

Aqui você ta passando um objeto para a lista, então não ira ocorrer problemas.

Na verdade minha pergunta é o que problemas poderiam acontecer no futuro caso usasse

 ArrayList<> aluas = new ArrayList<>();

ao inves de usar apenas a interface List para referencia. O autor fala de problemas que poderiam acontecer, mas não exemplifica, fiquei curioso.

Quando a sua variável de instância é uma interface, você esta deixando sua aplicação mais flexível. Costuma-se dizer que você esta programando para interface.

Por exemplo, olha a quantidade de objetos que a interface List aceita:

    List<String> list = new ArrayList<>();
    List<String> list1 = new LinkedList<>();
    List<String> list2 = new Vector<>();

Dessa forma eu posso escolher qual é a implementação mais performática ou que se adequa melhor ao sistema.

Espero ter ajudado !

Atenciosamente, João.

Obrigado pela resposta João. Eu entendo que ao usar a interface na referência eu ganho flexibilidade. Porém, eu gostaria de saber que outros problemas(que o autor menciona no curso mas não exemplicifa) não usar a interface como referência poderia causar em projetos grandes.

solução!

Se você não programar para interface, seus métodos terão parâmetros de classe concreta e a cada novo tipo que é criado em seu sistema você tem que criar um novo método ou funcionalidade. Isso causa problema ao realizar a manutenção do código. Acho que foi nesse sentido que o autor quis expor.

Pense na API de collections do Java , suas interfaces não são alteradas por muito tempo, imagina se a cada nova estrutura de dados que fosse criada essa classe fosse alterada. Muito código seria quebrado e levaria ao caos.

Att, João