Java 泛型问题 : Class "not within bounds of type-variable" error.

标签 java generics binary-tree binary-search-tree

我正在从事一个涉及泛型的类(class)项目。

public interface Keyable <T> {public String getKey();}

public interface DataElement extends Comparable<Keyable<DataElement>>, Keyable<DataElement>, Serializable {...}
public class Course implements DataElement {...}


public interface SearchTree<K extends Comparable<Keyable<K>> & Keyable<K>> extends Serializable {...}
public class MySearchTree implements SearchTree<Course> {
...
    private class Node {
        public Course data;
        public Node left;
        public Node right;
        ...
    }
}

当尝试在 MySearchTree 的声明中使用 Course 类时,我收到一个类型参数错误,指出“Course 不在类型变量 K 的范围内”。我花了很多时间试图找出 Course 可能缺少哪些属性使其不符合要求,但一无所获。

有什么想法吗?

最佳答案

MySearchTree K基本类型的是 Course .所以K必须“延长”Comparable<Keyable<Course>> & Keyable<Course> .但它没有,它扩展了 Comparable<Keyable<DataElement>> & Keyable<DataElement> .

我猜 DataElement 应该以类似于 Comparable 的方式进行泛化。 Enum

public interface Keyable <T> {public String getKey();}

public interface DataElement<THIS extends DataElement<THIS>> extends Comparable<Keyable<THIS>>, Keyable<THIS>, Serializable {...}
public class Course implements DataElement<Course> {...}


public interface SearchTree<K extends Comparable<Keyable<K>> & Keyable<K>> extends Serializable {...}
public class MySearchTree implements SearchTree<Course> {

关于Java 泛型问题 : Class "not within bounds of type-variable" error.,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9968687/

相关文章:

java - 如何为多个复选框创建一个 Action 事件?

generics - typescript :实现通用接口(interface)

c# - 如果要求 List<IFoo>,为什么我不能返回 List<Foo>?

c++ - 在 BST 中插入节点时出现 EXC_BAD_ACCESS (EXC_i386_GPFLT)

tree - 如果没有 ' N ' 节点,可能有多少种不同的二叉树和二叉搜索树?

java - 如何在android中另一个名为 "Activity A"的 Activity 中使用 "Activity B"的switch case中定义的方法?

java - 使用savedInstanceState保存 fragment 状态

c++ - Visual Basic.NET 中的 C++ 模板相当于什么?

haskell - 树与否(Haskell 类型理解)

java - 在jsp中使用泛型和for每个循环