这意味着什么?

时间:2014-11-14 14:20:48

标签: java

以下代码让我访问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......?
    }

为什么这个为什么我无法用这个来做呢?

2 个答案:

答案 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。

请参阅foreach explanation