Więc, jak rozumiem, trzeba zawsze Program do interfejsu, na przykład:Programowanie do interfejsu - unikanie później obsady
List<Integer> list = new LinkedList<Integer>();
So, później w moim programie mam:
public List<Integer> getIntegers() {
return list;
}
public void processIntegers() {
// I need an arraylist here
ArrayList<Integer> list = (ArrayList<Integer>) getIntegers(); // can I do this better, without a cast?
}
Czy mogę zastosować tutaj lepszy wzór lub jakoś zrobić coś, aby uniknąć obsady? Casting wydaje się bardzo brzydki w tym scenariuszu.
Dzięki.
Chciałbym również zapytać, dlaczego jest to lepsze niż używanie przez cały czas tablicyList, jeśli w końcu rzut jest nieunikniony. – dontcare
@dontcare Tak więc możesz przekazać tę listę liczb całkowitych do ogólnej funkcji, która akceptuje listę, a nie konkretnie listę. – jn1kk
powinieneś programować do najmniej określonego typu, którego możesz uciec i dalej. – plasma147