Lors de l'utilisation de méthodes génériques et quand utiliser la wild-card?

Je lis à propos de méthodes génériques de OracleDocGenericMethod. Je suis assez confus au sujet de la comparaison quand il dit lors de l'utilisation de wild-card et quand utiliser des méthodes génériques.
Citant le document.

interface Collection<E> {
    public boolean containsAll(Collection<?> c);
    public boolean addAll(Collection<? extends E> c);
}

Nous aurions pu utiliser des méthodes génériques ici:

interface Collection<E> {
    public <T> boolean containsAll(Collection<T> c);
    public <T extends E> boolean addAll(Collection<T> c);
    //Hey, type variables can have bounds too!
}

[...]
Cela nous indique que le type d'argument est utilisé pour le polymorphisme;
son seul effet est de permettre à une variété de réel argument de types d'
utilisé à différents invocation sites. Si c'est le cas, on devrait
utiliser des caractères génériques. Les caractères génériques sont conçus pour soutenir souple de sous-typage,
qui est ce que nous essayons d'exprimer ici.

Ne pensons-nous pas à une wild-card comme (Collection<? extends E> c); soutient aussi le genre de
le polymorphisme? Pourquoi, alors, le générique de la méthode d'utilisation est considéré comme pas bon dans ce domaine?

De poursuivre plus en avant, il affirme, en

Méthodes génériques permettent de paramètres de type à être utilisé pour exprimer
les dépendances entre les types d'un ou de plusieurs arguments pour une méthode
et/ou son type de retour. Si il n'y a pas une dépendance, un générique
la méthode ne doit pas être utilisé.

Qu'est-ce que cela signifie?

Ils ont présenté l'exemple

class Collections {
    public static <T> void copy(List<T> dest, List<? extends T> src) {
    ...
}

[...]

Nous aurions pu écrire la signature de cette méthode d'une autre manière,
sans l'aide de caractères génériques à tous:

class Collections {
    public static <T, S extends T> void copy(List<T> dest, List<S> src) {
    ...
}

Le document décourage la deuxième déclaration et favorise l'utilisation de la première syntaxe? Quelle est la différence entre la première et la deuxième déclaration? Les deux semble être en train de faire la même chose?

Quelqu'un peut-il mettre de la lumière sur cette zone.

InformationsquelleAutor benz | 2013-08-11