【发布时间】:2013-12-04 01:45:31
【问题描述】:
我是通配符的新手,在遍历 Collection 类型时遇到了问题。我必须将此函数转换为适用于任何 Collection 类型,而不仅仅是 List,这就是我所做的:
void sell(List<T> items) {
for (T e : items) {
stock.add(e);
}
}
改为:
void sell(Collection<? super T> items) {
Iterator ir = items.iterator();
while (ir.hasNext()){
stock.add((T)ir.next());
}
}
但是,当我编译代码时,我收到错误:
Note: Shop.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
我没有正确使用可迭代对象吗?任何帮助表示赞赏!
【问题讨论】:
-
没有理由在一个循环中使用 foreach 循环而不是另一个循环。
Collection(更一般地说,Iterable)可以与 foreach 循环一起使用。
标签: java list generics collections wildcard