我正在开发一个涉及泛型的类项目。
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 类时,我收到一个类型参数错误,指出“课程不在类型变量 K 的范围内”。我花了很多时间试图找出 Course 可能缺少哪些属性而使其不符合要求,但一无所获。
有任何想法吗?
In MySearchTree
the K
基本类型是Course
. So K
必须“延长”Comparable<Keyable<Course>> & Keyable<Course>
。但事实并非如此,它延伸了Comparable<Keyable<DataElement>> & Keyable<DataElement>
.
I guess DataElement
应该以类似的方式泛化Comparable
or 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> {
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)