Erweitern der allgemeinen abstrakten Klasse und korrekte Verwendung von 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();
    }
}

Wie rufe ich richtig super an um die zu bestehenAT Generikum vonTool zum AbstractTool-Konstruktor?

Es scheint egal, was ich wähleAT zu sein, wenn ich erkläreTool (Sagen,Tool<Thing>), dass ich immer einen zurück bekommeAbstractThing anstattThing. Dies scheint den Zweck von Generika zu besiegen ...

Hilfe?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage