Java迭代问题
“Catalog”是存储“Item”对象集合的类。为此,我选择使用列表集合。所以它看起来像: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
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()
方法需要返回iteratorCatalog
需要实现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中指定类型继承。