W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
IntelliJ IDEA 通過對(duì)代碼進(jìn)行檢查來執(zhí)行代碼分析。對(duì)于 Java 和其他支持的語言,存在大量的代碼檢查。
IntelliJ IDEA 具有強(qiáng)大、快速和靈活的靜態(tài)代碼分析功能。它能檢測(cè)編譯器和運(yùn)行時(shí)錯(cuò)誤,建議在編譯之前進(jìn)行更正和改進(jìn)。
IntelliJ IDEA 代碼檢查不僅檢測(cè)到編譯錯(cuò)誤,而且還發(fā)現(xiàn)不同的代碼效率低下。每當(dāng)你遇到一些無法訪問的代碼、未使用的代碼、非本地化的字符串、未解決的方法、內(nèi)存泄漏甚至拼寫問題 - 你就會(huì)發(fā)現(xiàn)代碼檢查很有用。
IntelliJ IDEA 代碼分析是可靈活配置的。您可以啟用/禁用每個(gè)代碼檢查和改變其嚴(yán)重性,使用自定義的檢查集創(chuàng)建配置文件,在不同的范圍應(yīng)用檢查, 禁止檢查特定的代碼段等等。
可以通過以下幾種方法進(jìn)行分析:
對(duì)于大多數(shù)檢測(cè)到的代碼問題,IntelliJ IDEA 提供快速修復(fù)建議。您可以通過按 F2 Shift+F2,快速查看文件中的錯(cuò)誤,從一個(gè)突出顯示的行導(dǎo)航到另一個(gè)。
有關(guān)更多信息和程序說明,??請(qǐng)參閱配置檢查嚴(yán)重性。
當(dāng)您檢查您的代碼時(shí),您可以告訴 IntelliJ IDEA 要搜索哪些類型的問題并獲取報(bào)告。這樣的配置可以保留為檢查配置文件。
檢查配置文件定義了要查找的問題的類型,即哪些代碼檢查啟用/禁用的以及這些檢查的嚴(yán)重性。配置文件可在 "檢查設(shè)置" 頁中配置。
要設(shè)置當(dāng)前檢查配置文件(在編輯器中用于動(dòng)態(tài)代碼分析的配置文件),只需在“檢查設(shè)置”頁面中選擇它并應(yīng)用更改。當(dāng)你執(zhí)行代碼分析或執(zhí)行單次檢查時(shí),您可以指定每次運(yùn)行使用哪個(gè)配置文件。
檢查配置文件可用于整個(gè) IDE 或特定項(xiàng)目:
IntelliJ IDEA 附帶以下預(yù)定義的檢查配置文件:
您可以根據(jù)需要擁有盡可能多的檢查配置文件。創(chuàng)建新配置文件有兩種方法:您可以添加一個(gè)新的配置文件作為項(xiàng)目默認(rèn)配置文件的副本,或復(fù)制當(dāng)前選擇的配置文件。新創(chuàng)建的配置文件存儲(chǔ)在 XML 文件中,其位置取決于基本配置文件的類型。
只要完成并應(yīng)用了對(duì)配置文件的某些更改,就會(huì)出現(xiàn)表示檢查配置文件的 <profile_name>. xml 文件。這些文件僅存儲(chǔ)與默認(rèn)配置文件的差異。
如果是基于文件的項(xiàng)目格式,則共享配置文件將存儲(chǔ)在項(xiàng)目文件 <project name>.ipr 中。
有關(guān)詳細(xì)信息,請(qǐng)參閱自定義配置文件一節(jié)。
如果檢查配置文件是特定于項(xiàng)目的,則會(huì)自動(dòng)與您的項(xiàng)目同步。每個(gè)用戶在檢查完后打開此項(xiàng)目時(shí),將啟用相同的檢查配置文件。
如果使用 IDE 默認(rèn)檢查配置文件,則可以通過設(shè)置 Repository 插件在多臺(tái)計(jì)算機(jī)之間進(jìn)行同步 ,并與 IntelliJ IDEA 捆綁在一起。這樣做,文件存儲(chǔ)在 USER_HOME/.<IntelliJ IDEA version>/config/inspection/<profile_name>.xml。
請(qǐng)注意,全局配置文件可能具有不同的名稱。將您當(dāng)前的項(xiàng)目配置文件復(fù)制到全局級(jí)別(單擊 "管理" 按鈕并選擇 "復(fù)制為全局"),并按您的需要調(diào)用它。
然后,在主菜單上選擇:文件|其他設(shè)置| 默認(rèn)設(shè)置, 并選擇此全局配置文件作為所有新項(xiàng)目的默認(rèn)設(shè)置?,F(xiàn)在,所有新創(chuàng)建的項(xiàng)目將默認(rèn)使用此全局配置文件,并且此全局配置文件將通過設(shè)置 Repository 插件在不同的計(jì)算機(jī)之間進(jìn)行同步。
檢查嚴(yán)重性表示檢查檢測(cè)到的代碼問題對(duì)項(xiàng)目的影響程度如何,并確定在編輯器中如何突出顯示檢測(cè)到的問題。默認(rèn)情況下,每個(gè)檢查都具有以下嚴(yán)重性級(jí)別之一:
您可以增加或減少每次檢查的嚴(yán)重性級(jí)別。也就是說,您可以強(qiáng)制 IntelliJ IDEA 將某些警告顯示為錯(cuò)誤或弱警告。類似的方式,最初被認(rèn)為是一個(gè)弱警告可以顯示為警告或錯(cuò)誤,或只是作為信息。
您還可以配置用于突出顯示每個(gè)嚴(yán)重性級(jí)別的顏色和字體樣式。此外,您可以創(chuàng)建自定義嚴(yán)重性級(jí)別并將其設(shè)置為特定檢查。
如有必要,您可以在不同范圍內(nèi)為同一檢查設(shè)置不同的嚴(yán)重性級(jí)別。
所有對(duì)上述檢查的修改都保存在當(dāng)前在檢查設(shè)置中選定的檢查配置文件中,并在使用此配置文件時(shí)應(yīng)用。
默認(rèn)情況下,所有啟用的代碼檢查都適用于所有項(xiàng)目文件。如有必要,您可以針對(duì)不同的作用域分別配置每個(gè)代碼檢查(啟用/禁用、更改其嚴(yán)重性級(jí)別和選項(xiàng))。這樣的配置,與任何其他檢查設(shè)置一樣,將作為特定配置文件的一部分保存和應(yīng)用。
當(dāng)檢查具有與不同范圍相關(guān)聯(lián)的不同配置時(shí),可能會(huì)出現(xiàn)復(fù)雜的情況。當(dāng)此類檢查在屬于部分或全部這些作用域的文件中執(zhí)行時(shí),將應(yīng)用最高優(yōu)先級(jí)范圍特定配置的設(shè)置。優(yōu)先級(jí)由檢查的范圍特定配置在檢查設(shè)置中的相對(duì)位置定義:最高配置具有最高優(yōu)先級(jí)。所有其他配置始終具有最低優(yōu)先級(jí)。
有關(guān)更多信息和程序說明,??請(qǐng)參閱配置不同范圍的檢查。
在“檢查頁面”中,所有檢查都分為幾類。代碼分析涵蓋的最常見任務(wù)包括:
IntelliJ IDEA 分析您正在鍵入的代碼,并且能夠?qū)崟r(shí)發(fā)現(xiàn)可能的錯(cuò)誤作為非編譯錯(cuò)誤。以下是這種情況的例子。
例如,潛在的 NPE 可以在運(yùn)行時(shí)拋出:
查找錯(cuò)誤之前 | 查找錯(cuò)誤之后 |
---|---|
NullPointer 異常,如果不是所有的情況都被覆蓋。此時(shí)添加一個(gè)斷言(assertion
)以避免在應(yīng)用程序運(yùn)行時(shí)拋出NullPointer 將是一個(gè)好主意。
|
|
IntelliJ IDEA 在編輯中突出顯示所謂的死碼(dead code),這是在應(yīng)用程序運(yùn)行期間從不執(zhí)行的代碼。也許,你甚至不需要你的項(xiàng)目的這部分代碼。根據(jù)情況,此類代碼可能會(huì)被視為錯(cuò)誤或冗余。無論如何,它降低了應(yīng)用程序的性能并使維護(hù)過程復(fù)雜化。以下是一個(gè)例子。
所謂的恒定條件,例如,從未見過或永遠(yuǎn)是真實(shí)的情況。在這種情況下,負(fù)責(zé)的代碼是不可訪問的,實(shí)際上是一個(gè)死代碼。
IntelliJ IDEA 突出顯示 if 條件,因?yàn)樗冀K是真實(shí)的。所以包含 else 的代碼實(shí)際上是一個(gè)死代碼,因?yàn)樗肋h(yuǎn)不會(huì)被執(zhí)行。
IntelliJ IDEA 還能夠立即突出顯示 Java 類、方法和字段,這些都是通過未使用的聲明檢查在整個(gè)項(xiàng)目中未使用的。在未使用的聲明檢查中配置的各種 Java EE @Inject 注釋、測(cè)試代碼入口點(diǎn)和其他隱式依賴項(xiàng)都受到了很深的尊重。
此檢查檢測(cè)對(duì)未定義的 JavaScript 函數(shù)或方法的引用。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: