遍历一个通用集合

时间:2010-11-24 01:51:46

标签: java generics

让我说我有功能

void sell(Collection<? extends T> items) {
   for (? e : items) {
      stock.add(e);
   }
}

你可以看到我想迭代这些项目,但我不能使用符号? e,因为它会出错“非法表达式开始”。

1 个答案:

答案 0 :(得分:10)

集合中的每个项目都是TT的子类,因此您可以使用T。您不知道项目的确切类型,但这无关紧要;你知道他们共同的基础。

for (T e: items) {
    stock.add(e);
}