Java迭代问题

Java迭代问题,java,iteration,iterable,Java,Iteration,Iterable,“Catalog”是存储“Item”对象集合的类。为此,我选择使用列表集合。所以它看起来像: public class Catalog { List<Item> itemList; 问题:我得到了不兼容类型错误 found: java.lang.Object requird: Item 我的Catalog类实现了Iterable,并具有一个方法iterator(),该方法返回列表的迭代器: public Iterator iterator() { Iterato

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

public class Catalog {
     List<Item> itemList;
问题:我得到了不兼容类型错误

found: java.lang.Object
requird: Item
我的Catalog类实现了Iterable,并具有一个方法iterator(),该方法返回列表的迭代器:

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

那么我做错了什么呢?

Catalog
需要实现
Iterable
,其
iterator()
方法需要返回
iterator

Catalog
需要实现
Iterable
及其
迭代器()
方法需要返回迭代器
确保它实现
Iterable
,而不仅仅是
Iterable

确保它实现
Iterable
,不仅仅是
Iterable
它需要实现
Iterable
它需要实现
Iterable
您需要为迭代器指定一个类型参数

public Iterator<Item> iterator() {
    Iterator<Item> itr = itemList.iterator();
    return itr;
}   
公共迭代器迭代器(){
迭代器itr=itemList.Iterator();
返回itr;
}   

当Catalag实现Iterable时,确保它实现Iterable

,您需要为迭代器指定一个类型参数

public Iterator<Item> iterator() {
    Iterator<Item> itr = itemList.iterator();
    return itr;
}   
公共迭代器迭代器(){
迭代器itr=itemList.Iterator();
返回itr;
}   
Catalag实现Iterable
时,确保它
实现Iterable

公共类目录实现Iterable{
公共迭代器迭代器(){
返回itemList.iterator();
}
公共类目录实现了Iterable{
公共迭代器迭代器(){
返回itemList.iterator();
}
它应该实现:

 Iterable<Item>
Iterable
(注意参数)

它应该实现:

 Iterable<Item>
Iterable
(注意参数)

尝试以下操作:

for(Item item : catalog.itemList) {
    item.getProperty();
    // ... and so on.
}
因为您的
目录
类是不可编辑的,但它的itemList是可编辑的。

请尝试以下操作:

for(Item item : catalog.itemList) {
    item.getProperty();
    // ... and so on.
}

因为您的
目录
类是不可编辑的,但它的itemList列表是可编辑的。

不用于在java中指定类型继承。
不用于在java中指定类型继承。