我有class A和扩展class BA

我有一个抽象class X和一个扩展Y的具体类X

X中,我有一个带有以下签名的抽象方法:

public abstract Collection<? extends A> getStuff();


Y中,我实现了具有以下签名的abstract方法:

public Collection<B> getStuff();


当我尝试执行以下操作时:classX.getStuff().add(B)

它提出了以下投诉:Collection中的add(捕获)不能应用于B

任何帮助,将不胜感激。

最佳答案

您可以将以下示例用作X类。

例如,

public abstract <T extends A> Collection<T> getStuff();


您也可以参考this threads

关于java - Java泛型帮助,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5761849/

10-10 03:50