我收到以下错误:

type mismatch: cannot convert from Collection<E> to AbstractCollection<E>


Google在前几页上没有显示任何相关结果,并且我确信有充分的理由让Collection不扩展Abstract Collection。

我在StackOverflow上看到过一篇文章,但是他们只是在没有真正给出此类行为任何原因的情况下继承了继承(“ AbstractCollection”中“ Collection”违反了什么?)

我经常使用AbstractCollection,并在使用HashMap的“值”作为AbsractCollection-yielding函数的结果时遇到了这个问题。

我应该使用什么代替AbstractCollection作为默认的,非特定的集合返回类型?

最佳答案

AbstractCollection<E> implements Collection<E>。因此,您可以只使用Collection<E>,这是您想要的更通用。

这意味着您将能够处理实现Collection的所有内容,而不是只能处理扩展AbstractCollection的任何内容。

10-04 20:08