Javagenerics问题:类“不在类型变量的范围内”错误。

我正在研究一个涉及generics的课程。

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

当尝试在MySearchTree的声明中使用Course类时,我收到一个类型参数错误,指出“Course不在类型变量K的范围内”。 我花了很多时间试图弄清楚课程可能缺少哪些属性使其不适合账单,但却出现空洞。

有任何想法吗?

MySearchTree中,基本类型的KCourse 。 所以K必须“扩展” Comparable> & Keyable 。 但事实并非如此,它扩展了Comparable> & Keyable

我想DataElement应该以与ComparableEnum类似的方式进行泛化。

 public interface Keyable  {public String getKey();} public interface DataElement> extends Comparable>, Keyable, Serializable {...} public class Course implements DataElement {...} public interface SearchTree> & Keyable> extends Serializable {...} public class MySearchTree implements SearchTree {