2013-04-29 7 views
28
for (SomeListElement element : objectWithList.getList()) { ... } 

A cosa si traduce lo snippet sopra riportato?Quali sono le traduzioni for-each in Java tradotte?

Ciò a cui sono principalmente interessato è se il metodo getList() chiamato una volta o con ogni iterazione/elemento?

+11

http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Iterable.html – vemv

+3

Questa è una scorciatoia per ' Soluzione Iterator'. – skuntsel

+16

Quali ricerche hai svolto prima di porre questa domanda? Le specifiche del linguaggio sembrano essere un luogo ovvio da guardare e danno una risposta molto chiara. http://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html#jls-14.14.2 –

risposta

42

Il suo equivalente a

for(Iterator<SomeListElement> i = objectWithList.getList().iterator(); 
                   i.hasNext();) { 
    SomeListElement element = i.next(); 
    //access element here 
} 
25

Viene tradotto nello snippet di codice seguente e objectWithList.getList() viene chiamato una sola volta.

for (Iterator i = objectWithList.getList().iterator(); i.hasNext();) { 
    SomeListElement e = (SomeListElement) i.next(); 
} 
Problemi correlati