下面是ArrayList的迭代器源碼,我注意到這兩行Object[]elementData=ArrayList.this.elementData;expectedModCount=modCount;第一行用的是標準的內部類訪問外部類成員變量的方法,為何第二行則是直接用變量名,沒有加“ArrayList.this”?為何modCount不需要加“ArrayList.this”?不加也能成?privateclassItrimplementsIterator{intcursor;//indexofnextelementtoreturnintlastRet=-1;//indexoflastelementreturned;-1ifnosuchintexpectedModCount=modCount;publicbooleanhasNext(){returncursor!=size;}@SuppressWarnings("unchecked")publicEnext(){checkForComodification();inti=cursor;if(i>=size)thrownewNoSuchElementException();Object[]elementData=ArrayList.this.elementData;if(i>=elementData.length)thrownewConcurrentModificationException();cursor=i+1;return(E)elementData[lastRet=i];}publicvoidremove(){if(lastRet
ArrayList內部類訪問其成員變量的問題
收到一只叮咚
2019-05-23 17:21:27