Je veux définir la classe suivante en tant que tels:Est-ce une limitation avec Generics en Java?
public class CollectionAttribute<E extends Collection<T>> {
private String name;
private E value;
public CollectionAttribute(String name, E value) {
this.name = name;
this.value = value;
}
public E getValue() { return value; }
public void addValue(T value) { value.add(T); }
}
Ce ne sera pas compilé (cannot resolve symbol T
). Si je remplace la déclaration de classe ce qui suit:
public class CollectionAttribute<E extends Collection<?>>
Alors je ne peux pas référence au type de la collection paramétrisé. Est-ce que je manque quelque chose ou ai-je atteint une limitation avec des génériques en Java?
: -o Toute explication succincte pourquoi? – OscarRyz
@Support: Sinon, il n'y a pas de type 'T'. – SLaks
N'est-ce pas redondant? Maintenant, je dois spécifier mon T deux fois quand je crée cet objet :( –