所以这是我老师给的练习。我们正在创建一个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的通用数组
预先感谢
答案 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];
}
}