Le code ci-dessous prend tout son sens - son ajout d'un type de type supertype de type T et le type S est définitivement un super type, alors pourquoi le compilateur refuse d'ajouter 'element' dans la collection?Méthode générique bornée ne compilant pas - pourquoi?
class GenericType<S,T extends S>{
void add1(Collection<? super T> col ,S element){
col.add(element); // error
// The method add(capture#9-of ? super T) in the type
// Collection<capture#9-of ? super T> is not applicable for the arguments (S)
}
}
Étant donné ce que vous dites, comment est donc cette autre déclaration de quelque chose qui ne * pas * l'utilisation générique (Collection au lieu de Collection super T>)? –
Bhaskar
@Bhaskar: le caractère générique vous permet également d'appeler la méthode avec une collection
ou une collection