2015-04-12 85 views
3

我有两个“集合”:一个是类,GenericSet,另一个是接口ISetclass GenericSet implements ISet。类的签名如下:Java泛型,实现一个类型为Iterable的接口<E>

interface ISet<E entends Iterable<E>> { .... } 

的想法 - 当然 - 是,接口定义我想看到的实现类,GenericSet,其签名如下(这里是我在哪里卡住)实现的一些方法:

class GenericSet<E extends Iterable<E> implements ISet<Iterable<<E>> { .... } 

我得到警告:

绑定不匹配:类型可迭代不是为界>参数类型的有效替代>的ISet

GenericSet类的总体思路是 - 在实现ISet时,它能够促进接收多种类型的对象,创建一组接收类型。

我错过了什么?我知道错误信息解释它;然而,因为我是泛型新手,我不明白什么是有界参数的“有效替代品”。

+0

你的代码片段是否被编译? – CKing

回答

2

据我所知道的,问题是,ISetextend Iterable

public interface ISet<E extends Iterable<E>> extends Iterable<E> { 
} 

这样,它满足的也正在一Iterable的条件。

另外,我觉得你的意思是

class GenericSet<E extends Iterable<E>> implements ISet<E> { 

} 

,然后大概是用来实现IterableSet

0

其实,这与接受的答案有些不同,然而,根据实施细则,以下也适用:

public interface ISet<E extends Iterable<E>> { .... } 

反对

class GenericSet<E extends Iterable<E>> implements ISet<E> { .... } 

最小的区别,在这里,在接口的签名之中。