interface Addable<E> {
public E add(E x);
public E sub(E y);
public E zero();
}
class SumSet<E extends Addable> implements Set<E> {
private E element;
public SumSet(E element) {
this.element = element;
}
public E getSum() {
return element.add(element.zero());
}
}
Parece que element.add()
no devuelve un E extends Addable
sino un Object
. ¿Porqué es eso? ¿Tiene algo que ver con que Java no sepa en tiempo de ejecución cuáles son realmente los tipos de objetos, por lo que simplemente asume que son Objetos (por lo tanto, requieren un molde)?¿Cuál es el problema con este código de Java que trata con Generics?
Gracias
+1 para publicar un fragmento de código que se puede cortar y pegar fácilmente para probar. – cletus