扩展通用抽象类和 Super 的正确使用

2023-11-25

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();
    }
}

我如何正确调用 super 来传递AT通用的Tool到 AbstractTool 构造函数?

看来无论我选什么AT当我宣布Tool (Say, Tool<Thing>),我总是得到一个AbstractThing代替Thing。这似乎违背了泛型的目的......

Help?


public class Tool<AT extends AbstractThing> extends AbstractTool<AT> {

换句话说,如果您使用泛型扩展或实现某些内容,请记住为它们定义泛型参数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

扩展通用抽象类和 Super 的正确使用 的相关文章

随机推荐