家庭作业变得疯狂:“无法创建AbstractChain <T>的通用数组”

时间:2019-06-12 16:33:16

标签: java generics

所以这是我老师给的练习。我们正在创建一个SkipList,也就是带有快捷方式的“ LinkedList”。 他给我们提供了一个类图,其中包含一个接口(AbstractLink)和三个类(StartLink和EndLink实现AbstractLink,而Link扩展StartLink)。 他还为我们提供了很大一部分代码,但令我感到惊讶的是该接口为空,我真的不明白为什么会这样,而且他看起来好像不需要填充它。 无论如何,他在StartLink中告诉我们编写构造函数。

因此,我尝试使用参数n初始化nexts,它是AbstractLink(???)的数组。 据我搜索,这是不可能完成的,因为未定义AbstractLink的类型。但这让我对必须改变的东西一无所知...

public interface AbstractLink<T extends Comparable<T>> extends Comparable<AbstractLink<T>> {

}
public class StartLink<T extends Comparable<T>> implements AbstractLink<T> {

    final AbstractLink<T>[] nexts;

    public StartLink(int n){
        this.nexts = new AbstractLink<T>[n];    //my line
    }

Eclipse给了我这个: 无法创建ChainonAbstrait的通用数组

预先感谢

1 个答案:

答案 0 :(得分:0)

尝试创建一个Object数组并将其转换为通用类型。

public class StartLink<T extends Comparable<T>> implements AbstractLink<T> {

    final AbstractLink<T>[] nexts;

    public StartLink(int n){
        this.nexts = (AbstractLink<T>[]) new Object[n];
    }
}