我有一个奇怪的问题,我不知道该如何解决。
这是出现错误的类的声明:
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>
到目前为止,问题在于以下类接受具有上限Comparable的类型V,但不接受递归类型DList。
如何解决这种类型的“递归”并摆脱错误?
最佳答案
让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;
}
}
关于java - Java泛型绑定(bind)不匹配递归类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48937403/