Java迭代问题

标签 java iteration iterable

“Catalog”是一个存储“Item”对象集合的类。为此,我选择使用 List 集合。所以它看起来像:

public class Catalog {
     List<Item> itemList;

主类必须能够使用 for 循环访问 Item 元素,该 for 循环将 Catalog 对象视为集合本身。假设有一个名为“catalog:”的 Catalog 对象

for (Item items : catalog) {
     //various operations involving item
}

问题:我收到不兼容类型错误。

found: java.lang.Object
requird: Item

我的 Catalog 类实现了 Iterable,并且有一个方法 iterator(),它返回 List 的迭代器:

public Iterator iterator() {
    Iterator itr = itemList.iterator();
    return itr;
}   

那么我做错了什么?

最佳答案

Catalog需要实现Iterable<Item>及其 iterator()方法需要返回Iterator<Item> .

关于Java迭代问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6378733/

相关文章:

c++ - 如何像 python 语法一样在 C++ 中使用 "cut" vector

python - 如何在Python中多次使用迭代器

java - 实现 Iterator 的抽象类的实例不会迭代

java - 将长 id 哈希为整数 id 如何安全?

java - JSF outputstylesheet 在 firefox 中不起作用?

java - 将多个并行对象连接到单个列表中

OpenCV:矩阵迭代

java - Spring-Boot > 使用 JNDI 设置 application.properties

javascript - 迭代后返回 while 循环 - 当条件再次为真时?

javascript - 为什么使用 "for...in"进行数组迭代是一个坏主意?