我有一个奇怪的问题,我不明白如何解决。 以下是出现错误的类的声明:
public class DList<V extends Comparable<V>> { ...
下面我有一个方法有以下签名:
public DList<DList<V>> split(int steps) { ...
给出了具体的错误
Bound mismatch: The type DList<V> is not a valid substitute for the bounded parameter <V extends Comparable<V>> of the type DList<V>
到目前为止,问题是以下类接受类型V,其上限为Comparable,但递归类型DList不被接受。 我怎样才能解决这种“递归”问题。类型和摆脱错误?
答案 0 :(得分:3)
让DList
实施Comparable
:
public class DList<V extends Comparable<V>> implements Comparable<DList<V>> {
@Override public int compareTo(DList<V> other) {
return 0;
}
}
然后确保V
的替代品有充分的界限:
public class Other {
public static <X extends Comparable<X>> DList<DList<X>> split(int steps) {
return null;
}
}