2014-11-14 153 views
-2

下面的代码让我访问IterableItem的元素,那就是CmisObject的对象列表这是什么意思?

ItemIterable<CmisObject> iterable=session.getRootFolder().getChildren(); 

    for (CmisObject o : iterable) { 
     System.out.println(o.getName() + " which is of type " + o.getType().getDisplayName()); 
    } 

什么是对的什么意思?

编辑:这是一个奇怪的iterable接口的实现...为什么我不能用这样的东西迭代它?

 while(iterable.getHasMoreItems()) 
    { 
     CmisObject o=iterable......? 
    } 

为什么作品为什么我不能用这个做到这一点?

+0

它的一个foreach。对于迭代中的每个CmisObject o – 2014-11-14 14:23:20

+0

for的含义?搜索循环.. – 2014-11-14 14:23:58

+1

“*为什么我不能用这样的东西迭代它...... *”你需要认识到'Iterable'和'Iterator'是不一样的。 'Iterable'可以返回'Iterator',可以稍后在循环中使用。 – Pshemo 2014-11-14 14:44:30

回答

3

的在这种情况下使用了迭代器。 'Enhanced For-Loop'(也称为foreach)。

任何类实现迭代(JavaDocs)返回,你可以使用这样一个迭代器:

final Iterator<MyClass> it = iterable.iterator(); 

while(it.hasNext()) { 
    MyClass instance = it.next(); 
    // ... 
} 

或者你可以选择使用:

for(MyClass m:iterable) { 
    // ... 
} 

您可以藏汉阵列上使用。

2

这是一个for-each循环。它用于遍历Iterable(例如CmisObject的List)或Arrays的所有项目。

foreach explanation