Java: ограниченные символы подстановки или параметр ограниченного типа?

Недавно я прочитал эту статью:http://download.oracle.com/javase/tutorial/extra/generics/wildcards.html

Мой вопрос, вместо того, чтобы создавать такой метод:

public void drawAll(List<? extends Shape> shapes){
    for (Shape s: shapes) {
        s.draw(this);
    }
}

Я могу создать такой метод, и он отлично работает:

public <T extends Shape> void drawAll(List<T> shapes){
    for (Shape s: shapes) {
        s.draw(this);
    }
}

Какой способ я должен использовать? Полезен ли подстановочный знак в этом случае?

Ответы на вопрос(5)

Ваш ответ на вопрос