2015-04-12 75 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> { .... } 

最小的區別,在這裏,在接口的簽名之中。