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
中,基本类型的K
是Course
。 所以K
必须“扩展” Comparable
。 但事实并非如此,它扩展了Comparable
。
我想DataElement
应该以与Comparable
或Enum
类似的方式进行泛化。
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 {