翻譯|使用教程|編輯:鮑佳佳|2020-10-21 13:29:05.297|閱讀 763 次
概述:Dataflow to/from here允許您在給定的數(shù)據(jù)處理階段識別哪些值是可能的。這些知識有助于我們在運(yùn)行時(shí)潛在的錯(cuò)誤發(fā)生之前檢測它們,并通過刪除冗余的檢查、條件等來優(yōu)化代碼。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
IntelliJ IDEA是Java語言開發(fā)的集成環(huán)境,IntelliJ在業(yè)界被公認(rèn)為優(yōu)秀的Java開發(fā)工具之一,尤其在智能代碼助手、代碼自動(dòng)提示、重構(gòu)、J2EE支持、Ant、JUnit、CVS整合、代碼審查、 創(chuàng)新的GUI設(shè)計(jì)等方面的功能可以說是超常的。
在編寫代碼時(shí),我們不斷得到靜態(tài)分析的幫助。這種看不見的機(jī)制在幕后運(yùn)作,為我們提供各種建議和警告。可以肯定地說IntelliJ IDEA比我們更了解我們的代碼。
現(xiàn)在,如果我們可以訪問靜態(tài)分析數(shù)據(jù)以檢查程序的工作方式或調(diào)試復(fù)雜問題該怎么解決?實(shí)際上,此功能已經(jīng)存在,并且已經(jīng)存在了一段時(shí)間。
它被稱為Dataflow to/from here,它允許您在給定的數(shù)據(jù)處理階段識別哪些值是可能的。這些知識有助于我們在運(yùn)行時(shí)潛在的錯(cuò)誤發(fā)生之前檢測它們,并通過刪除冗余的檢查、條件等來優(yōu)化代碼。
考慮以下示例:
在printList方法中,我們有一個(gè)null檢查,以說明當(dāng)null作為參數(shù)傳遞時(shí)的情況。當(dāng)我們試圖在列表為null時(shí)打印出列表的內(nèi)容時(shí),這可以保護(hù)我們免受NullPointerException的影響。
讓我們看看該功能如何幫助我們優(yōu)化此代碼。
右鍵單擊該參數(shù),然后選擇“Analyze | Data Flow to Here并指定分析范圍。在“Analyze Dataflow”工具窗口中,單擊“Group by Leaf Expression Nullness”并打開相應(yīng)的選項(xiàng)卡。
分析結(jié)果清楚地表明,沒有上游代碼在調(diào)用此方法時(shí)將null作為參數(shù)傳遞。
因此,我們可以安全地消除冗余的null檢查并將參數(shù)注釋為@Notnull。當(dāng)您想優(yōu)化代碼,但需要更多信息來指導(dǎo)您如何優(yōu)化代碼時(shí),數(shù)據(jù)流分析是一種可以節(jié)省大量時(shí)間并幫助您避免錯(cuò)誤的工具。
使用相同的過程,您可以檢查整個(gè)輸入值范圍。有了這些信息,您可以防止出現(xiàn)意外的ArrayIndexOutOfBoundsExceptions之類的錯(cuò)誤。
如果在運(yùn)行時(shí)拋出異常,并且您有堆棧跟蹤,則確定原因變得更加容易。不需要尋找拋出它的方法并仔細(xì)檢查調(diào)用樹。相反,只需單擊引發(fā)異常的幀。
如果您以前從未使用過此功能,建議您嘗試一下。如果您希望我們進(jìn)一步研究其他功能,請?jiān)谠u論中給我們留言。
好了這就是今天的內(nèi)容了,如果今天的文章未解決你的需求,可點(diǎn)擊獲取更多免費(fèi)教程。不要忘了在評論與我們分享您的想法和建議,慧都作為IntelliJ IDEA正版合作商,我們推出"軟件國產(chǎn)化服務(wù)季"活動(dòng)(點(diǎn)擊查看詳情)!現(xiàn)IntelliJ正版授權(quán)在線訂購最高立減3000元!低至1333!還有多種授權(quán)方式供你選擇。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: