一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【JVM開發(fā)者必看】IntelliJ IDEA代碼分析實(shí)踐指南:實(shí)時(shí)糾錯(cuò)、冗余檢測(cè)、自動(dòng)修復(fù)等

龍智DevSecOps ? 2025-03-13 10:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

wKgZO2fSQyyAfVp3AAGyL2AePj4863.png

靜態(tài)代碼分析是指在不實(shí)際運(yùn)行代碼的情況下掃描代碼以發(fā)現(xiàn)潛在問題。IntelliJ IDEA中的檢查可以在您編譯項(xiàng)目之前檢測(cè)到其中的潛在問題。IDE 可以高亮顯示各種問題、定位死代碼、發(fā)現(xiàn)可能的Bug和拼寫問題,并改善整體代碼結(jié)構(gòu)。

本系列博文將介紹IntelliJ IDEA中代碼分析的幾種方式,以幫助您查找并修正代碼中的問題。接下來,一起來了解IDE如何幫助您在處理代碼時(shí)預(yù)防問題。

查找并修正代碼中的問題

當(dāng)您在IntelliJ IDEA中編寫代碼時(shí),IDE會(huì)提醒您代碼中需要注意的區(qū)域并為您高亮顯示。下面來看一些示例。

如果您的代碼無(wú)法編譯,IntelliJ IDEA會(huì)在不需要您先編譯的情況下通知您。例如,下面的代碼將無(wú)法編譯,因?yàn)?FileReader 可能會(huì)拋出 FileNotFoundException,它是一個(gè)需要在方法中聲明的受檢異常。您會(huì)看到這段代碼被高亮顯示,當(dāng)您懸停在上方時(shí),IntelliJ IDEA會(huì)告訴您問題出在哪里。此外,它還會(huì)通過在方法簽名中添加異常為您提供如何修正的建議。

wKgZO2fSQ0aAIMNbAAHd3sbts-w173.png未處理的異常

IntelliJ IDEA 還會(huì)在代碼冗余時(shí)告知您。在下面的示例中,new File 以灰色顯示。這是因?yàn)樗侨哂嗟?,可被替換為文件名。

wKgZPGfSQ3SACrEFAAG6XqB8mXI963.png冗余代碼

快速查看代碼中的問題

如上面所見,IntelliJ IDEA 會(huì)高亮顯示代碼中的潛在問題。如果您想詳細(xì)了解這些問題,可以將光標(biāo)移動(dòng)到編輯器中高亮顯示的代碼上,將鼠標(biāo)懸停在右側(cè)裝訂區(qū)域中的錯(cuò)誤條紋上,或者點(diǎn)擊左側(cè)的燈泡圖標(biāo)。

編輯器窗格右上角的 Inspection(檢查)微件將顯示當(dāng)前文件中的問題數(shù)量及其嚴(yán)重性。您可以點(diǎn)擊 Inspection(檢查)微件打開問題列表,這些問題隨后會(huì)顯示在 Problems(問題)工具窗口的 File(文件)標(biāo)簽頁(yè)中。

wKgZO2fSQ4WAbvuDAAIW5LoBY2Y728.pngInspection(檢查)微件

問題自動(dòng)修正

IntelliJ IDEA 為這些檢查提供快速修復(fù),以幫助您實(shí)時(shí)修正代碼。使用 ?? (macOS) 或 Alt+Enter (Windows/Linux) 調(diào)用 Show Context Actions(顯示上下文操作)并從列表中選擇所需的操作以將其應(yīng)用于代碼。

如果代碼中存在多個(gè)錯(cuò)誤和警告,可以使用 F2 導(dǎo)航到下一個(gè)問題,或者使用 Shift+F2 導(dǎo)航到上一個(gè)問題。這樣,您可以逐一修正每個(gè)問題。

wKgZO2fSQ6GAH7m5AANctDW_CZY344.png修正問題

改進(jìn)代碼質(zhì)量

即使代碼中沒有問題,IntelliJ IDEA 仍然可能會(huì)提供一些關(guān)于如何改進(jìn)代碼的建議。使用 Show Context Actions(顯示上下文操作)(macOS 上為 ??,Windows/Linux 上為 Alt+Enter)將建議應(yīng)用于您的代碼。例如,您可以嘗試新的慣用法,例如使用 forEach 代替 for 循環(huán),或使用 stream 代替 while 循環(huán),甚至使用 try-with-resources 語(yǔ)句代替親自關(guān)閉 BufferedReader。

wKgZPGfSQ7aAZX0TAANbuhXfAGM515.png建議

修正整個(gè)文件中出現(xiàn)的所有特定問題

如果同一問題在同一文件中多次出現(xiàn),您無(wú)需逐一修正!IntelliJ IDEA 還可以修正文件中多個(gè)位置的特定問題。使用 Show Context Actions(顯示上下文操作)(macOS 上為 ??,Windows/Linux 上為 Alt+Enter)時(shí),點(diǎn)擊建議右側(cè)的三個(gè)點(diǎn),將該建議應(yīng)用于整個(gè)文件。

wKgZO2fSQ8eAYOx-AAK--Le838E522.png修正文件中的所有問題

結(jié)論

IntelliJ IDEA 可以通過在您編寫代碼時(shí)高亮顯示需要額外關(guān)注的代碼來幫助您預(yù)防問題,并幫助您找到當(dāng)前代碼中可以改進(jìn)的地方。

IntelliJ IDEA 還可以幫助您解決整個(gè)項(xiàng)目中的問題,而不僅僅是您當(dāng)前正在處理的文件。

本博文英文原作者:Marit van Dijk

關(guān)于 IntelliJ IDEA

JetBrains 的旗艦 IDE IntelliJ IDEA 專為高效的 JVM 開發(fā)而設(shè)計(jì)。憑借對(duì)語(yǔ)言和技術(shù)的深入了解以及符合人體工程學(xué)的用戶界面,IntelliJ IDEA 使開發(fā)成為愉悅的體驗(yàn)!免費(fèi)的開源 IntelliJ IDEA 社區(qū)版和 IntelliJIDEA Edu 也可以用于學(xué)習(xí)和教學(xué)編程。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • IDE
    IDE
    +關(guān)注

    關(guān)注

    0

    文章

    352

    瀏覽量

    47763
  • JVM
    JVM
    +關(guān)注

    關(guān)注

    0

    文章

    160

    瀏覽量

    12625
  • 代碼分析
    +關(guān)注

    關(guān)注

    0

    文章

    12

    瀏覽量

    5847
  • 開發(fā)者
    +關(guān)注

    關(guān)注

    1

    文章

    647

    瀏覽量

    17545
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Compact RIO開發(fā)者指南實(shí)例詳解:渦輪風(fēng)力發(fā)電機(jī)測(cè)試案例分析

    Compact RIO開發(fā)者指南實(shí)例詳解:渦輪風(fēng)力發(fā)電機(jī)測(cè)試關(guān)鍵詞:NI Labview Compact RIO開發(fā);FPGA混合編程;Real-Time VI; User interface VI
    發(fā)表于 06-22 16:25

    Mac使用IntelliJ IDEA創(chuàng)建JavaWeb項(xiàng)目的步驟

    筆記 —— Mac 使用IntelliJ IDEA創(chuàng)建JavaWeb項(xiàng)目
    發(fā)表于 05-27 12:39

    IntelliJ IDEA Default Keymap

    IntelliJ IDEA Default Keymap
    發(fā)表于 07-12 16:05 ?0次下載

    intellij idea使用教程

    IntelliJ IDEA 有很多人性化的設(shè)置我們必須單獨(dú)拿出來講解,也因?yàn)檫@些人性化的設(shè)置讓我們這些 IntelliJ IDEA 死忠粉更加死心塌地使用它和分享它。
    的頭像 發(fā)表于 02-08 16:19 ?3272次閱讀

    IntelliJ IDEA人性化的設(shè)置講解

    區(qū)分大小寫的情況是這樣的:比如我們?cè)?Java 代碼文件中輸入 stringBuffer IntelliJ IDEA 是不會(huì)幫我們提示或是代碼補(bǔ)充的,但是如果我們輸入 StringBu
    的頭像 發(fā)表于 08-27 15:22 ?2952次閱讀
    <b class='flag-5'>IntelliJ</b> <b class='flag-5'>IDEA</b>人性化的設(shè)置講解

    JetBrains IntelliJ IDEA 適配蘋果M1 Mac

    IntelliJ IDEA 官方發(fā)布新的公告,稱已經(jīng)為早期采用準(zhǔn)備了兩個(gè) Build 版本。這就是 IntelliJ IDEA Ultim
    的頭像 發(fā)表于 12-11 09:23 ?4222次閱讀

    HarmonyOS開發(fā)者日生態(tài)最新進(jìn)展、核心代碼解析、創(chuàng)新案例分享

    開發(fā)工具、社區(qū)共建幾個(gè)維度助力開發(fā)者能力成長(zhǎng)和實(shí)踐創(chuàng)新。 Codelabs深度剖析與代碼動(dòng)手實(shí)踐 針對(duì)
    的頭像 發(fā)表于 04-17 09:57 ?1390次閱讀

    使用Intellij IDEA的一些小技巧

    https://blog.csdn.net/linsongbin1/article/details/80211919 Intellij IDEA真是越用越覺得它強(qiáng)大,它總是在我們寫代碼的時(shí)候,不時(shí)
    的頭像 發(fā)表于 09-05 15:03 ?2012次閱讀

    IntelliJ IDEA 2022.2的主要更新內(nèi)容

    IntelliJ IDEA 2022.2 為遠(yuǎn)程開發(fā)功能帶來了多項(xiàng)質(zhì)量改進(jìn),使其更美觀、更穩(wěn)定。從 v2022.2 開始,IntelliJ IDEA
    的頭像 發(fā)表于 08-04 10:58 ?1893次閱讀

    IntelliJ Idea開發(fā)環(huán)境安裝教程

    我們后面會(huì)在IntelliJ Idea開發(fā),因此先安裝開發(fā)環(huán)境。
    的頭像 發(fā)表于 10-17 10:53 ?1645次閱讀

    IntelliJ IDEA 2022.3發(fā)布

    IntelliJ IDEA 2022.3 正式發(fā)布,在新版本中,開發(fā)者可以通過設(shè)置切換到新 UI,即可預(yù)覽新的 IDE 外觀。此版本引入了一個(gè)新的 Settings Sync(設(shè)置同步)解決方案,用于同步和備份自定義用戶設(shè)置。此
    的頭像 發(fā)表于 12-02 10:00 ?1220次閱讀

    IntelliJ IDEA快捷鍵大全和動(dòng)圖演示

    本文參考了 IntelliJ IDEA 的官網(wǎng),列舉了IntelliJ IDEA(Windows 版)的所有快捷鍵。并在此基礎(chǔ)上,為 90% 以上的快捷鍵提供了動(dòng)圖演示,能夠直觀的看到
    的頭像 發(fā)表于 08-11 14:08 ?1102次閱讀
    <b class='flag-5'>IntelliJ</b> <b class='flag-5'>IDEA</b>快捷鍵大全和動(dòng)圖演示

    Intellij IDEA 開發(fā)工具實(shí)例

    本篇博客我們將會(huì)以Intellij IDEA 開發(fā)工具為例,所以我這里簡(jiǎn)單談?wù)勎覀兯褂玫?b class='flag-5'>開發(fā)工具。 目前大家做Java開發(fā)的,無(wú)外乎就兩種
    的頭像 發(fā)表于 09-25 16:21 ?1189次閱讀
    <b class='flag-5'>Intellij</b> <b class='flag-5'>IDEA</b> <b class='flag-5'>開發(fā)</b>工具實(shí)例

    jrebel和idea熱部署優(yōu)勢(shì)

    開發(fā)效率: JRebel 和 IntelliJ IDEA 的熱部署可以快速將代碼變更應(yīng)用于運(yùn)行中的應(yīng)用程序,節(jié)省了反復(fù)重啟服務(wù)器的時(shí)間。開發(fā)
    的頭像 發(fā)表于 12-03 15:16 ?1135次閱讀

    RT-Thread開發(fā)者大會(huì)系統(tǒng)控制分論壇動(dòng)手實(shí)踐指南

    將圍繞 AIoT 的發(fā)展、產(chǎn)業(yè)技術(shù)趨勢(shì),聚焦控制、連接、行業(yè)應(yīng)用開發(fā)、邊緣計(jì)算領(lǐng)域。 通過主題演講、技術(shù)分享、應(yīng)用演示、動(dòng)手實(shí)踐,助力開發(fā)者探索萬(wàn)物互聯(lián)的世界。 其中,我們將在系統(tǒng)控
    的頭像 發(fā)表于 12-22 18:15 ?857次閱讀
    RT-Thread<b class='flag-5'>開發(fā)者</b>大會(huì)系統(tǒng)控制分論壇動(dòng)手<b class='flag-5'>實(shí)踐</b><b class='flag-5'>指南</b>