2014-11-14 150 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