當我使用正常的循環,
陣列中的所有元件,通常會初始化:爲什麼數組元素未在增強for循環中初始化?
Object[] objs = new Object[10];
for (int i=0;i<objs.length;i++)
objs[i] = new Object();
但是,當我使用for-each循環。
數組元素仍然null
,在循環之後:
Object[] objs = new Object[10];
for (Object obj : objs)
obj = new Object();
我想obj
是指特定數組中的元素,
所以如果我初始化中,陣列元件將初始化也是如此。
爲什麼不會發生這種情況?
14.14.2節沒有告訴我這件事,但你的回答非常清楚,謝謝! –
只是爲了檢查,這仍然意味着'objs [i]'上的方法仍然可以通過'obj'通過執行'obj.method()'來完成嗎?由於'obj'指向'objs [i]' – SmRndGuy
@SmRndGuy:「方法......仍然可以完成」是什麼意思?您仍然可以通過引用調用方法,但不會更改數組的內容。 –