简而言之,我有:
public interface Dictionary<E extends Comparable<E>> extends Iterable<E> {
和
public class TreeDictionary implements Dictionary<TreeDictionary> {
编译时,导致错误
TreeDictionary.java:4:类型参数TreeDictionary不在其内部
绑定的公共类TreeDictionary实现
字典{
我想原因可能是因为我对Dictionary接口的声明不完全清楚。
如果有人可以向我解释一下,我将不胜感激:)
最佳答案
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
的约束。