Programming to an interface - avoiding the later cast

Viewed 227

So, as I understand, one should always program to an interface, as in:

List<Integer> list = new LinkedList<Integer>();

So, later in my program I have:

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?
}

Can I follow a better pattern here or somehow do something to avoid the cast? Casting seems very ugly in this scenario.

Thanks.

1 Answers
Related