java - 遍历泛型集合

标签 java generics

假设我有功能

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

如您所见,我想迭代这些项目,但我不能使用符号? e,因为它会输出错误“非法表达式开始”。

最佳答案

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

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

关于java - 遍历泛型集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4262829/

相关文章:

java - 如何使用 JDBC 在运行时编辑数据库表(在内存中)

java - 重载采用通用类型的方法会导致模棱两可的方法调用编译错误

java - java中使用通配符的hashmap无法赋值

c# - 存储库模式问题和泛型?

java - java调用递归方法

java - 使用 Flying Saucer +iText从具有多语言文本的HTML生成PDF,仅中文字体有效

java - 如何使用 Jackson 将复杂的 Json 对象序列化为 HTTP Get 的 QueryString?

kotlin 中的泛型 - 实现接口(interface)限制的类型

swift - 无法将类型 'T?' 的值转换为预期的参数类型 '_?' - 通用类型和完成 block

java - 如何加载原生库来玩框架