通用类型声明导致错误

时间:2012-05-10 15:44:29

标签: java generics

简而言之,我有:

public interface Dictionary<E extends Comparable<E>> extends Iterable<E> {

public class TreeDictionary implements Dictionary<TreeDictionary> {

编译时,导致错误

  

TreeDictionary.java:4:类型参数TreeDictionary不在其中   绑定的公共类TreeDictionary实现   字典{

我想原因可能是因为我对Dictionary接口的声明并不完全清楚。

如果有人能解释一下,我真的很感激:)

3 个答案:

答案 0 :(得分:5)

public interface Dictionary<E extends Comparable<E>>

这表示您想要为E使用哪种类型,它必须实现Comparable接口。

根据您的TreeDictionary定义:

public class TreeDictionary implements Dictionary<TreeDictionary>

TreeDictionary未实现Comparable,因此无法替换E的泛型类型中的Dictionary

请改为尝试:

public class TreeDictionary implements Dictionary<TreeDictionary>, Comparable<TreeDictionary>

TreeDictionary现在应符合E的约束条件。

答案 1 :(得分:0)

您的TreeDictionary类还应实现Comaparable接口。

答案 2 :(得分:0)

您需要实现Comparable接口才能正常工作

public class TreeDictionary实现Dictionary,Comparable

希望有所帮助