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

我正在为一个涉及泛型的类项目。

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可能缺少哪些属性,以使其不符合要求,但却空洞了。

有任何想法吗?

回答:

MySearchTreeK基本类型为Course。因此K必须“扩展” Comparable<Keyable<Course>> &

Keyable<Course>。但是,它没有扩展Comparable<Keyable<DataElement>> &

Keyable<DataElement>

我猜 应该以类似的方式对泛型 或 。

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泛型问题:类“不在类型变量的范围内”错误。 的全部内容, 来源链接: utcz.com/qa/422784.html

回到顶部