以下代码让我访问IterableItem的元素,即CmisObject对象的列表
ItemIterable<CmisObject> iterable=session.getRootFolder().getChildren();
for (CmisObject o : iterable) {
System.out.println(o.getName() + " which is of type " + o.getType().getDisplayName());
}
for?的含义是什么?
编辑:这是一个可迭代接口的奇怪实现...为什么我不能用这样的东西迭代它? while(iterable.getHasMoreItems())
{
CmisObject o=iterable......?
}
为什么这个为什么我无法用这个来做呢?
答案 0 :(得分:3)
此上下文中的for使用Iterator。 &#39;增强型For-Loop&#39; (也称为foreach)。
任何实现iterable(JavaDocs)的类都会返回一个你可以使用的迭代器:
final Iterator<MyClass> it = iterable.iterator();
while(it.hasNext()) {
MyClass instance = it.next();
// ...
}
或者您可以选择用于:
for(MyClass m:iterable) {
// ...
}
您也可以在Arrays上使用它。
答案 1 :(得分:2)
它是for-each循环。它用于迭代Iterable的所有项(例如CmisObject列表)或Arrays。