なにこれ
Javaのforeach文(拡張for文)の、コロンの右側
すなわち
for( String s : list )
のlistの部分
これが何回実行されるのか、疑問に思ったわけです。
for( String s : getList() )
な~んて、メソッドを書いちゃった時。
まさかループするたびにgetList()するなんてないよね?
そんなことしてたらおかしいよね?
実験してみました。
実験
Java
public static void main( String[] args ) {
for( String s : getList() ) {
System.out.println( s );
}
}
public static List<String> getList() {
System.out.println( "getList()" );
List<String> l = new ArrayList<>();
l.add( "a" );
l.add( "b" );
l.add( "c" );
return l;
}
出力
getList()
a
b
c
結論
納得の結果だった。