jar*_*eds 4 java generics iterator
这是我的代码:
import java.util.List;
public class ItemList implements Iterable<Entry> {
    private List<Entry> entries;
    public static class Entry {
        private final String id;
        private int quantity;
    }
    @Overide public Iterator<Entry> iterator() {
        return entries.iterator();
    }
}
此代码将无法编译.(它声称它无法在ItemList类定义中找到"Entry"类型).
我希望其他类能够遍历此List的内部条目.我宁愿不将Entry类移动到单独的文件,因为这需要将该类的许多内部工作暴露给包中的所有其他类.
我的问题是:为什么不编译?而且,解决这个问题的最佳方法是什么?
问题是范围界定.由于Entry是内部类,因此需要以"父"的名称作为前缀.试试这个:
class ItemList implements Iterable<ItemList.Entry> {
    private List<Entry> entries;
    public static class Entry {
        private final String id = null;
        private int quantity;     
    }
    @Override public Iterator<Entry> iterator() {
        return entries.iterator();
    }
}
| 归档时间: | 
 | 
| 查看次数: | 920 次 | 
| 最近记录: |