Tenho um método que retorna um List, embora ela instancie um LinkedList.
A pergunta é: qual assinatura do método é melhor?
List<AlgumaCoisa> pegaLista()
ou
LinkedList<AlgumaCoisa> pegaLista()
Não sei se é melhor deixar a assinatura genérica, ou se devo especificar o tipo exato que retorno. Levanto esta questão porque não decidi ainda se vou utilizar um LinkedList ou um ArrayList, e para a classe que receberá a lista, faz toda a diferença saber se ela trata de um vetor ou uma lista ligada.
List com generics com ctz, pq vc utilizara o polimorfismo de forma eficiente, imagine que você tenha que fazer alguma operação em que o LinkedList é lento ou não possui a solução pronta para o seu problema enquanto outra classe especializada de List têm… se você utilizar List poderá usar diversas implementações da interface List.
[quote=FelipeBValio]
…
Não sei se é melhor deixar a assinatura genérica, ou se devo especificar o tipo exato que retorno. Levanto esta questão porque não decidi ainda se vou utilizar um LinkedList ou um ArrayList, e para a classe que receberá a lista, faz toda a diferença saber se ela trata de um vetor ou uma lista ligada.[/quote]
Por que faz diferença?
Aparentemente, a classe que vai usar esse método está dependendo muito da implementação… não deveria.
Do meu ponto de vista, se eu vou receber um conjunto de dados, tenho que saber se eles estarão armazenados em um vetor ou em uma lista, pois isso pode implicar na lógica dos meu código. O List<> obscurece essa informação.
Oi
Explica um pouco melhor qual é sua situação, se puder… geralmente quando se tem uma coleção de dados, deve-se estar mais preocupado com os dados em si, como os dados estão organizados fica encapsulado em quem organizou os dados. O List realmente obscurece essa informação, mas de propósito, pois existem casos em que isso é vantagem.