2012-05-10 202 views
1

简言之,我有:泛型类型声明导致错误

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

而且

public class TreeDictionary implements Dictionary<TreeDictionary> { 

在编译时,造成错误

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

我猜可能是因为我没有完全清楚Dictionary接口的声明。

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

+0

你'TreeDictionary'类没有工具'Comparable'接口。检查你是否真的希望TreeDictionary实现TreeDictionary的Dictionary(再次) –

+0

你确定要'TreeDictionary'是'TreeDictionary'的Dictionary吗? – trutheality

+0

@ trutheality:如果它是一个树结构,那么可以。 – skaffman

回答

5
public interface Dictionary<E extends Comparable<E>> 

,指出无论类型,您要使用E,它必须实现Comparable接口。

鉴于你TreeDictionary定义:

public class TreeDictionary implements Dictionary<TreeDictionary> 

TreeDictionary没有实现Comparable,所以不能在泛型类型的Dictionary代替E

试试这个:

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

TreeDictionary现在应该顺应E的约束。

+0

Cheers mate(: – Mountain

0

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

0

你需要实现Comparable接口,为它工作

公共类TreeDictionary实现了字典,可比

希望它有助于