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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Java在構(gòu)造函數(shù)中泄漏了這個(gè)

Java在構(gòu)造函數(shù)中泄漏了這個(gè)

郎朗坤 2019-10-31 12:54:01
為什么IDE會(huì)抱怨“在構(gòu)造函數(shù)中泄漏”?我一直認(rèn)為這只是一種不好的做法。但是我實(shí)際上從來(lái)沒(méi)有發(fā)現(xiàn)為什么它不好。
查看完整描述

3 回答

?
阿晨1998

TA貢獻(xiàn)2037條經(jīng)驗(yàn) 獲得超6個(gè)贊

this構(gòu)造函數(shù)(而不是控制器)中泄漏引用很危險(xiǎn),尤其是在多線程環(huán)境中。這是因?yàn)樵跇?gòu)造函數(shù)調(diào)用完成之前,對(duì)象尚未完全構(gòu)造。this因此,從構(gòu)造函數(shù)中泄漏出來(lái)意味著外部世界可以訪問(wèn)尚未完全構(gòu)建的對(duì)象。這可能不一定會(huì)導(dǎo)致單線程程序出現(xiàn)問(wèn)題(盡管有可能,但是這種情況下的問(wèn)題更加明顯)。但是,如果this泄漏到其他線程,則它們實(shí)際上可以嘗試在對(duì)象構(gòu)造完成之前對(duì)對(duì)象執(zhí)行某些操作,這將導(dǎo)致難以發(fā)現(xiàn)的錯(cuò)誤。


查看完整回答
反對(duì) 回復(fù) 2019-10-31
?
喵喵時(shí)光機(jī)

TA貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個(gè)贊

生活中沒(méi)有絕對(duì)的東西,例如。您必須繳稅...或...死亡是不可避免的。但是,“傳出this構(gòu)造函數(shù)總是不好的”是其中之一。

彼得指出的警告是恰當(dāng)和有效的。this從構(gòu)造函數(shù)泄漏到引用將被發(fā)布給未知或不受信任的客戶端的任何方法或上下文中肯定會(huì)出現(xiàn)問(wèn)題。對(duì)于尚未構(gòu)造的對(duì)象的引用,發(fā)布對(duì)任何客戶端代碼(無(wú)論是否受信任)的引用仍然很糟糕,該客戶端代碼假設(shè)它具有對(duì)有效且一致的對(duì)象的看法。

就是說(shuō),this從構(gòu)造方法傳遞到程序包私有的方法絕對(duì)沒(méi)有錯(cuò),該方法對(duì)一組共享公共接口的對(duì)象執(zhí)行公共初始化,特別是在初始化時(shí)間長(zhǎng)或復(fù)雜的情況下。

TL; DR:在我看來(lái),在某些情況下,不僅可以接受this構(gòu)造函數(shù)的傳遞,而且實(shí)際上希望這樣做。


查看完整回答
反對(duì) 回復(fù) 2019-10-31
?
絕地?zé)o雙

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超4個(gè)贊

只是不要這樣做。我們只是浪費(fèi)了很多時(shí)間來(lái)解決幾年前創(chuàng)建的錯(cuò)誤,當(dāng)時(shí)有人將構(gòu)造函數(shù)中的“ this”傳遞給“可信任的”“ package private”方法。隨著時(shí)間的流逝,該方法逐漸發(fā)展壯大,并且未初始化的實(shí)例進(jìn)入了事件隊(duì)列。構(gòu)造后只需使用最終的init(),即可成為匿名英雄

查看完整回答
反對(duì) 回復(fù) 2019-10-31
  • 3 回答
  • 0 關(guān)注
  • 474 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)