Java泛型绑定不匹配递归类型

时间:2018-02-22 21:21:37

标签: java generics

我有一个奇怪的问题,我不明白如何解决。 以下是出现错误的类的声明:

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不被接受。 我怎样才能解决这种“递归”问题。类型和摆脱错误?

1 个答案:

答案 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;
    }

}