Estendendo Classe Abstrata Genérica e Uso Correto de Super
public abstract class AbstractTool<AT extends AbstractThing> {
protected ArrayList<AT> ledger;
public AbstractTool() {
ledger = new ArrayList<AT>();
}
public AT getToolAt(int i) {
return ledger.get(i);
}
// More code Which operates on Ledger ...
}
public class Tool<AT extends AbstractThing> extends AbstractTool {
public Tool() {
super();
}
}
Como faço para chamar corretamente super para passar oAT
genérico deTool
ao construtor AbstractTool?
Parece que não importa o que eu escolherAT
para ser quando eu declaroTool
(Dizer,Tool<Thing>
), que eu sempre recebo de voltaAbstractThing
ao invés deThing
. Isso parece derrotar o objetivo dos genéricos ...
Socorro?