Como as listas devem ser lançadas em suas implementações?

Vamos supor que eu esteja usando uma biblioteca para a qual não conheço o código-fonte. Tem um método que retorna uma lista, assim:

public List<SomeObj> getObjs() { ... }

Eu estou querendo saber se isso é uma boa ideia:

ArrayList<SomeObj> objs = (ArrayList<SomeObj>) getObjs();

Se, por exemplo, a implementação concreta da Lista dentro de getObjs () é umaLinkedList então não haveria algum tipo de discrepância de tipos?

questionAnswers(9)

yourAnswerToTheQuestion