Java 迭代器<;T>;返回对象
我写了一个简单的类:Java 迭代器<;T>;返回对象,java,generics,iterator,Java,Generics,Iterator,我写了一个简单的类: 公共类报表实现了Iterable{ 私有ObservableList items=FXCollections.observableArrayList(); // ... 公共可观察列表getItems(){ 退货项目; } 公共迭代器迭代器{ 返回items.iterator(); } // ... } 但当我尝试像这样使用foreach循环时,我得到了不兼容类型错误: 报告=新报告() 对于(FINR记录:报告){ // ... } 这段代码工作得很好,但我想要更干
公共类报表实现了Iterable{
私有ObservableList items=FXCollections.observableArrayList();
// ...
公共可观察列表getItems(){
退货项目;
}
公共迭代器迭代器{
返回items.iterator();
}
// ...
}
但当我尝试像这样使用foreach循环时,我得到了不兼容类型错误:
报告=新报告()
对于(FINR记录:报告){
// ...
}
这段代码工作得很好,但我想要更干净的代码,我不明白为什么以前的代码返回对象
for(FinRecord r:report.getItems()){
// ...
}
这是java的特性,所以它创建了
Iterator
而不是Iterator
,还是我遗漏了什么?您的类必须实现Iterable
公共类报表实现了Iterable
{
私有ObservableList items=FXCollections.observableArrayList();
// ...
公共可观察列表getItems(){
退货项目;
}
公共迭代器迭代器(){
返回items.iterator();
}
// ...
}
public class Report<T> implements Iterable<T>
{
private ObservableList<T> items = FXCollections.observableArrayList();
// ...
public ObservableList<T> getItems() {
return items;
}
public Iterator<T> iterator() {
return items.iterator();
}
// ...
}