我有class A
和class B
延伸A
。Java泛型幫助
我有一個抽象的class X
和一個具體的類Y
,延伸X
。
在X
我有一個抽象方法具有以下簽名:
public abstract Collection<? extends A> getStuff();
在Y
我實現抽象方法具有以下簽名:
public Collection<B> getStuff();
當我試圖做到以下幾點: classX.getStuff().add(B)
它給出了以下投訴:在C中添加(捕獲) ollection不能應用於B
任何幫助,將不勝感激。
什麼是投訴? – 2011-04-23 02:56:13
如果你的問題出現在add()方法中,你爲什麼要討論'getStuff()'的簽名?或者''classX'是'getStuff()'返回的集合? – unholysampler 2011-04-23 03:00:14
你可能想閱讀[協變和反變化](http://en.wikipedia.org/wiki/Covariance_and_contravariance_(computer_science)#Java)。 – 2011-04-23 03:01:20