Java 泛型类扩展其他泛型类时出错
我对泛型类有一个问题,我将用我的示例类来解释它: 二叉树Java 泛型类扩展其他泛型类时出错,java,generics,Java,Generics,我对泛型类有一个问题,我将用我的示例类来解释它: 二叉树 public class BinaryTree<T extends Comparable<T>> { public class IndexedBinaryTree<T extends Indexed<? extends Comparable<Indexed<?>>>> extends BinaryTree<T> { 索引 public abstract
public class BinaryTree<T extends Comparable<T>> {
public class IndexedBinaryTree<T extends Indexed<? extends Comparable<Indexed<?>>>> extends BinaryTree<T> {
索引
public abstract class Indexed<T extends Comparable<T>> implements Comparable<Indexed<T>> {
索引二叉树
public class BinaryTree<T extends Comparable<T>> {
public class IndexedBinaryTree<T extends Indexed<? extends Comparable<Indexed<?>>>> extends BinaryTree<T> {
扩展索引的示例类
public class Vokabel extends Indexed<String> {
IndexedBinaryTree不工作。我想做的是创建一个包含索引对象的二进制树,可以这样创建:
IndexedBinaryTree<Vokabel> ibt = new IndexedBinaryTree<>();
NetBeans给我的错误是:
类型参数?extends Comparable>不在的范围内
类型变量T
其中T是一个类型变量:
T扩展了类索引中声明的可比性
> expected
type argument T#1 is not within bounds of type-variable T#2
where T#1, T#2 are type-variables:
T#1 extends Indexed<? extends Comparable<Indexed<?>>> declared in class IndexedBinaryTree
T#2 extends Comparable<T#2> declared in class BinaryTree
这包括:
class BinaryTree<T extends Comparable<? super T>> {}
abstract class Indexed<T extends Comparable<? super T>> implements Comparable<Indexed<T>> {}
class IndexedBinaryTree<T extends Indexed<?>> extends BinaryTree<T> {}
你说不工作是什么意思?请提供详细信息。定义不起作用。发布错误以及预期的行为。编辑了错误的主要发布截图。我不理解这个声明:索引实现可比较。强迫T具有可比性的目的是什么,然后促使T在不同的东西上具有可比性?您可能需要类似于K扩展可比性,T扩展索引的东西。你被我上面的评论弄糊涂了。您似乎希望T被索引,并成为要索引的类型参数。