quiero definir la siguiente clase como tal:¿Es esto una limitación con 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); }
}
Esto no se compilará (cannot resolve symbol T
). Si reemplazo la declaración de clase con lo siguiente:
public class CollectionAttribute<E extends Collection<?>>
Entonces no puedo hacer referencia al tipo parametrizado de la colección.
¿Me falta algo o he llegado a una limitación con los genéricos en Java?
: -o Cualquier breve explicación de por qué? – OscarRyz
@Support: De lo contrario, no hay tipo 'T'. – SLaks
¿No es esto redundante? Ahora tengo que especificar mi T dos veces cuando creo este objeto :( –