Collection <! - 是什么意思?扩展EmpApp - >?

时间:2010-08-24 16:17:44

标签: java generics collections

在我的代码中,我使用了两个不同的类对象 empobj &amp;的雇员即可。 Eclipse要求更改代码

empobj.addAll(employee);

empobj.addAll((Collection<? extends EmpApp>) employee);

这是什么意思? 我无法理解这里的概念。 我能否澄清一下这个问题?

3 个答案:

答案 0 :(得分:3)

Collection<? extends EmpApp>

是集合的定义。 “雇员进入一个集合,其中包含扩展EmpApp的类的对象。泛型中的”?“表示Eclipse不确定应该在哪个类名。

有关Java中泛型的更多信息,请参阅wikipedia article

答案 1 :(得分:2)

addAll将参数设为Collection,然后将该集合的所有元素添加到自身。在你的情况下,你试图给它一些不是Collection的东西,所以编译器试图通过将参数转换为正确的类型来使它工作。在这种特殊情况下,正确的类型是一些扩展EmpApp的对象的集合,即Collection<? extends EmpApp>

从您的变量名称来看,employee可能不是一个集合,因此您需要重新访问任何集合empobj的API,并了解如何添加单个元素它(可能add)。

答案 2 :(得分:0)

集合是要被视为单个单元的对象组。任意对象可以被存储,检索和放置。被操纵为收集的元素。