第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

ArrayList內部類訪問其成員變量的問題

ArrayList內部類訪問其成員變量的問題

收到一只叮咚 2019-05-23 17:21:27
下面是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
查看完整描述

2 回答

?
偶然的你

TA貢獻1841條經驗 獲得超3個贊

因為Itr是ArrayList的內部類,內部類想要訪問外部類的非靜態(tài)成員,最保險的寫法是外部類.this.成員名,這樣寫能夠保證當內部類哪天出現了一個同名的成員時,不會被弄混。
                            
查看完整回答
反對 回復 2019-05-23
?
ABOUTYOU

TA貢獻1812條經驗 獲得超5個贊

謝邀。
用ArrayList.this.modCount更合適些,好在Itr里沒有modCount這個成員,否則就有歧義了。
如果編譯警告設置得嚴格些,例如Eclipse在Errors/Warnings里把Unqualifiedaccesstoinstancefield打開,那么expectedModCount=modCount;會報編譯警告的,只有寫成this.expectedModCount=ArrayList.this.modCount;才會把警告去掉。
                            
查看完整回答
反對 回復 2019-05-23
  • 2 回答
  • 0 關注
  • 450 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號