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

Java泛型绑定不匹配递归类型,java,generics,Java,Generics,我有一个奇怪的问题,我不知道如何解决。 以下是出现错误的类的声明: public class DList<V extends Comparable<V>> { ... 公共类数据列表{。。。 下面我有一个具有以下签名的方法: public DList<DList<V>> split(int steps) { ... 公共数据列表拆分(整数步){。。。 这给了我具体的错误 Bound mismatch: The type DList<V

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

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>
绑定不匹配:类型DList不是类型DList的绑定参数的有效替代品
到目前为止,问题是下面的类接受具有可比较上限的类型V,但不接受递归类型DList。
如何解决这种类型的“递归”并消除错误?

Have
DList
implement
Comparable

public class DList<V extends Comparable<V>> implements Comparable<DList<V>> {
    @Override public int compareTo(DList<V> other) {
        return 0;
    }
}

d列表
实施
可比

public class DList<V extends Comparable<V>> implements Comparable<DList<V>> {
    @Override public int compareTo(DList<V> other) {
        return 0;
    }
}

嗯……你在这里做什么?你真的希望你的方法结果是
DList
DList
吗?为什么
DList
然后不实现
Comparable
?DList代表一个双链接列表的实现,这个方法根据指示列表大小的步骤返回一个相同类型的列表每个列表。例如有一个[1,2,3,6,1]的列表和步骤2,我返回的列表中有对象[1,2][3,6][1]公平。但是如果你想以这种方式使用它,为什么
DList
不也实现
Comparable
?你完全正确,我一直在想什么,我太傻了,谢谢!那么我们能称这个问题为“打字错误”吗,关闭它然后继续?:)嗯…你在这里做什么?你真的希望你的方法结果是
DList
DList
吗?为什么不
DList
然后实现
Comparable
?DList代表一个双链接列表的实现,这个方法返回一个基于st的相同类型的列表列表表示每个列表大小的eps。例如,有一个[1,2,3,6,1]的列表和步骤2,我返回的列表中有对象[1,2][3,6][1]公平。但是如果你想以这种方式使用它,为什么
DList
不也实现
Comparable
?你完全正确,我一直在想什么,我太傻了,谢谢!那么我们能称这个问题为“打字错误”吗,关闭它然后继续?:@FedericoPeraltaSchaffner no:-)
list
必须是
Other
的一个实例(而且是多余的,因为
split
声明为静态的)。如果您希望
split
DList
中作为非静态方法,只需将其声明为
public DList split(int steps)
-
V
则与课堂上的
V
相同declaration@FedericoPeraltaSchaffner否:-)
列表
必须是
其他
的实例(而且是多余的,因为
拆分
声明为静态)。如果要将
split
作为
DList
中的非静态方法,只需将其声明为
public DList split(int steps)
-
V
,则与类声明中的
V
相同