オブジェクトの 2 次元配列があり、それらをすべて初期化したい場合は、ループを呼び出します。
for(int i=0; i<len; i++)
for(int j=0; j<len; j++)
objects[i][j] = new MyObject();
これは問題なく動作しますが、for-each コンストラクトでこれを実行しようとすると、動作せず、配列全体が null のままです。
for(MyObject[] intermediate: objects)
for(MyObject obj: intermediate)
obj = new MyObject();
なぜ彼らは異なる振る舞いをするのですか?