必先利其器之 IDEA 磨刀好杀猪
必先利其器之 IDEA 磨刀好殺豬
- 1. idea 的安裝
- 1.1 idea 的安裝
- 1.2 idea 的XX
- 2. idea 的常用設(shè)置
- 2.1 JDK 設(shè)置
- 2.2 MAVEN 設(shè)置
- 2.3 字體大小設(shè)置
- 2.4 自動(dòng)導(dǎo)包設(shè)置
- 2.5 顯示行號(hào)設(shè)置
- 2.6 Tab 頁多行顯示設(shè)置
- 2.6 文件編碼設(shè)置
- 2.7 自動(dòng)提示不區(qū)分大小寫
- 2.8 解決 Tomcat 中文亂碼
- 2.9 設(shè)置代碼行寬度
- 3. idea 的常用插件
- 3.1 Material Theme UI
- 3.2 codota
- 3.3 Free Mybaties Plugin
- 3.4 MybatiesX
- 3.5 Mybaties Log Plugin
- 3.6 GenerateSerialVersionUID
- 3.7 Grep Console
- 3.8 Gson Format
- 3.9 JavaBeanToJson
- 3.10 JRebel For IntelliJ
- 3.11 Key Permoter X
- 3.12 Lombok
- 3.13 Maven Hepler
- 3.14 QAplug - FindBugs
- 3.15 RestfulToolkit
- 3.16 SequenceDiagram
- 3.17 UML Support
- 3.18 Translation
- 4. idea 的常用快捷鍵
- 4.1 Mac 鍵盤符號(hào)和修飾鍵說明:
- 4.2 編輯快捷鍵
- 4.3 查詢替換快捷鍵
- 4.4 使用搜索快捷鍵
- 4.5 Debug 調(diào)試快捷鍵
- 4.6 Navigation(導(dǎo)航)快捷鍵
- 4.6 General(通用)快捷鍵
- 5. idea 的 Debug 技巧
- 5.1 Debug開篇
- 5.2 基本用法&快捷鍵
- 5.3 變量查看
- 5.4 計(jì)算表達(dá)式
- 5.5 智能步入
- 5.6 斷點(diǎn)條件設(shè)置
- 5.7 多線程調(diào)試
- 5.8 回退斷點(diǎn)
- 5.9 中斷Debug
1. idea 的安裝
1.1 idea 的安裝
??idea 的安裝非常簡(jiǎn)單,可以直接去官網(wǎng)下載(官網(wǎng)地址:https://plugins.jetbrains.com/),目前版本都已經(jīng)到達(dá)2020版本了,不過本篇文章是以 2019.3.5 版本技術(shù)演示。下載好軟件安裝直接下一步下一步安裝完成。
??
1.2 idea 的XX
??idea 的XX 可以私聊我哈,涉及版權(quán)問題,審核不通過!
??
2. idea 的常用設(shè)置
2.1 JDK 設(shè)置
??進(jìn)行項(xiàng)目 JDK 和全局 JDK 的設(shè)置:
??
2.2 MAVEN 設(shè)置
??設(shè)置 maven 的地址、配置文件和倉庫地址:
??
2.3 字體大小設(shè)置
??可以設(shè)置字體、字號(hào)和行間距:
??
2.4 自動(dòng)導(dǎo)包設(shè)置
??自動(dòng)導(dǎo)包時(shí),對(duì)于 1 √ 來說,IDEA 將在我們書寫代碼的時(shí)候自動(dòng)幫我們優(yōu)化引入的包,比如自動(dòng)去掉一些沒有用到的包;對(duì)于 2 √ 來說,IDEA 將在我們書寫代碼的時(shí)候自動(dòng)幫我們導(dǎo)入需要用到的包。但是對(duì)于那些同名的包,還是需要手動(dòng) Alt + Enter 進(jìn)行導(dǎo)入的。
??
2.5 顯示行號(hào)設(shè)置
??設(shè)置代碼顯示行號(hào)及方法分隔:
??
2.6 Tab 頁多行顯示設(shè)置
??idea 默認(rèn)一行顯示所有打開的頁面,一行展示不下就會(huì)關(guān)掉之前打開的頁面,這點(diǎn)對(duì)于開發(fā)人員來說很不爽,所有需要設(shè)置多 tab 展示頁面:1,關(guān)閉一行顯示;2.設(shè)置顯示 tab 頁上限
??
2.6 文件編碼設(shè)置
??idea 有的文件類型默認(rèn)編碼為 GBK,而且對(duì)于 properties 文件的編碼也不是 UTF-8。如果我們隊(duì) properties 文件進(jìn)行中文的話,那么將會(huì)是一行看不懂的代碼。
??
2.7 自動(dòng)提示不區(qū)分大小寫
??idea 默認(rèn)自動(dòng)提示區(qū)分大小寫,這種提示很不人道,極其考驗(yàn)我的英文基礎(chǔ),這里設(shè)置自動(dòng)提示不區(qū)分大小寫:
??
2.8 解決 Tomcat 中文亂碼
??在 idea 中配置完 Tomcat 后,啟動(dòng) Tomcat 你會(huì)發(fā)現(xiàn)在 console 里面中文亂碼,通過如下設(shè)置可以解決亂碼問題:
??
2.9 設(shè)置代碼行寬度
??在編寫代碼的時(shí)候,有時(shí)候我們的一行代碼特別長(zhǎng),這樣就影響了代碼的可讀性,下面設(shè)置代碼行寬度,在代碼行超過設(shè)置的寬度時(shí)自動(dòng)換行。(感覺效果不是特別的好)
??
3. idea 的常用插件
??idea 自帶不僅很多插件,而且還有很多優(yōu)秀的插件供我們選擇,這些插件極大的提高了我們的開發(fā)效率,對(duì)于一個(gè)資深而又“”懶散的”開發(fā)人員來說,簡(jiǎn)直是莫大的福音。對(duì)于插件我們可以在 idea 上直接下載安裝(估計(jì)沒有 VPN 話會(huì)很慢很痛苦);還可以直接去官網(wǎng)上下載安裝(地址:https://plugins.jetbrains.com/),下載完成,選擇 install plugins from disk 安裝。下面是我電腦上安裝的一些常用插件:
??
3.1 Material Theme UI
??最美主題:
??
3.2 codota
??智能提示(ctrl + shift + o)和尋找案例(ctrl + shift + Y):
??
3.3 Free Mybaties Plugin
??一款 idea 對(duì) mybatis 的增強(qiáng)插件,主要可以功能如下:生成 mapper.xml 文件;快速從代碼到 mapper 文件的相互跳轉(zhuǎn);mybatis 自動(dòng)補(bǔ)全及錯(cuò)誤提示。
??
3.4 MybatiesX
??這個(gè)插件的功能和上面Free Mybaties Plugin 插件功能大同小異,這里就不做演示了。
??
3.5 Mybaties Log Plugin
??該插件可以將執(zhí)行的 SQL 完成的打印出來,效果如下:
??
3.6 GenerateSerialVersionUID
??當(dāng)一個(gè)類 implements Serializable 的時(shí)候,我們都是加上 serialVersionUID,這個(gè)插件可以幫助我們快速實(shí)現(xiàn):
??
3.7 Grep Console
??可以通過expression表達(dá)式過濾日志、給不同級(jí)別的日志或者給不同pattern的日志加上背景顏色與上層顏色。
??
3.8 Gson Format
??一鍵根據(jù) Json 生成 Java 類:
??
3.9 JavaBeanToJson
??將一個(gè)類轉(zhuǎn)換成 Json 格式:
??
3.10 JRebel For IntelliJ
??idea 熱部署插件,以后啟動(dòng)調(diào)試都是已 JReble 來啟動(dòng),tomcat 就可以放在一邊了,相對(duì)于 tomcat 的熱部署和 springboot 的熱部署要好用的多,不過要激活和配置:
??
3.11 Key Permoter X
??Key Promoter X 是一個(gè)提示插件,當(dāng)你在IDEA里面使用鼠標(biāo)的時(shí)候,如果這個(gè)鼠標(biāo)操作是能夠用快捷鍵替代的,那么Key Promoter X會(huì)彈出一個(gè)提示框。
??
3.12 Lombok
??ombok 提供了簡(jiǎn)單的注解的形式來幫助我們簡(jiǎn)化消除一些必須有但顯得很臃腫的 java 代碼。通過使用對(duì)應(yīng)的注解,可以在編譯源碼的時(shí)候生成對(duì)應(yīng)的方法,所以不會(huì)影響任何運(yùn)行效率,常見注解可以參考這一篇文章《Lombok 常用注解》。
??
3.13 Maven Hepler
??一般用這款插件來查看maven的依賴樹。在不使用此插件的情況下,要想查看maven的依賴樹就要使用Maven命令maven dependency:tree來查看依賴。想要查看是否有依賴沖突也可以使用mvn dependency:tree -Dverbose -Dincludes=:只查看關(guān)心的jar包,但是這樣還是需要我執(zhí)行命令,并且當(dāng)項(xiàng)目比較復(fù)雜的時(shí)候,這個(gè)過程是比較漫長(zhǎng)的。maven helper就能很好的解決這個(gè)問題。
??一旦安裝了Maven Helper插件,只要打開pom文件,就可以打開該pom文件的Dependency Analyzer視圖(在文件打開之后,文件下面會(huì)多出這樣一個(gè)tab),進(jìn)入Dependency Analyzer視圖之后有三個(gè)查看選項(xiàng),分別是Conflicts(沖突)、All Dependencies as List(列表形式查看所有依賴)、All Dependencies as Tree(樹結(jié)構(gòu)查看所有依賴)。并且這個(gè)頁面還支持搜索。很方便!并且使用該插件還能快速的執(zhí)行maven命令。
??
3.14 QAplug - FindBugs
??幫助方向系統(tǒng)代碼隱藏的 bugs
??
3.15 RestfulToolkit
??接口自測(cè)工具;可以根據(jù) Control URL 跳轉(zhuǎn)到對(duì)應(yīng)的方法定義,可以替代 Postman 和 Postwoman :
??
3.16 SequenceDiagram
?? idea 自動(dòng)生成時(shí)序圖,選中方法,查看時(shí)序圖:
??
3.17 UML Support
??可以查看 UML 類圖,是查看源碼的一大利器:
??
3.18 Translation
?? idea 翻譯插件,是英文不好的開發(fā)人員的一大福利:
??
4. idea 的常用快捷鍵
4.1 Mac 鍵盤符號(hào)和修飾鍵說明:
| ? Command | ?Shift | ? Option | ? Control |
| ?? Return/Enter | ? Delete | ? 向前刪除鍵(Fn+Delete) | ↑ 上箭頭 |
| ↓ 下箭頭 | ← 左箭頭 | → 右箭頭 | ? Page Up(Fn+↑) |
| ? Page Down(Fn+↓) | Home Fn + ← | End Fn + → | ? 右制表符(Tab鍵) |
| ? 左制表符(Shift+Tab) | ? Escape (Esc) |
4.2 編輯快捷鍵
| 基本的代碼補(bǔ)全(補(bǔ)全任何類、方法、變量) | Ctrl +Space | ? Space |
| 智能代碼補(bǔ)全(過濾器方法列表和變量的預(yù)期類型) | Ctrl+Shift+Space | ? ? Space |
| 補(bǔ)全語句 | Ctrl+Shift+Enter | ??? |
| 顯示方法參數(shù) | Ctrl+P | ?P |
| 顯示提示、警告、錯(cuò)誤等信息 | Ctrl+F1 | ?F1 |
| 生成代碼,生成 Getter、Setter、構(gòu)造器等 | Alt+Insert | ?N / ?? / ?N |
| 重寫父類方法 | Ctrl+O | ?O |
| 實(shí)現(xiàn)接口方法 | Ctrl+I | ?I |
| 使用(if…else, try…catch, for, synchronized 等)包圍選中語句 | Ctrl+Alt+T | ??T |
| 使用“//”注釋或取消注釋 | Ctrl+/ | ?/ |
| 使用“/** **/”注釋或取消注釋 | Ctrl+Shift+/ | ??/ |
| 選擇代碼塊,連續(xù)按會(huì)增加選擇外層的代碼塊 | Ctrl+W | ?↑ |
| 與“Ctrl+W”相反,減少選擇代碼塊 | Ctrl+Shift+W | ?↓ |
| 顯示快速修復(fù)列表 | Alt+Enter | ?? |
| 格式化代碼 | Ctrl+Alt+L | ??L |
| 優(yōu)化 Imports | Ctrl+Alt+O | ??O |
| 自動(dòng)優(yōu)化代碼縮進(jìn) | Ctrl+Alt+I | ??I |
| 縮進(jìn)代碼/取消縮進(jìn)代碼 | Tab/Shift+Tab | ? / ?? |
| 剪切代碼,未選擇代碼時(shí)剪切當(dāng)前行 | Ctrl+X or Shift+Delete | ?X |
| 復(fù)制代碼,未選擇代碼時(shí)復(fù)制當(dāng)前行 | Ctrl+C or Ctrl+Insert | ?C |
| 重復(fù)代碼,未選擇代碼時(shí)重復(fù)當(dāng)前行 | Ctrl+D | ?D |
| 對(duì)選中內(nèi)容進(jìn)行大小寫切換 | Ctrl+Shift+U | ??U |
| 展開或收折疊碼塊 | Ctrl+NumPad+/- | ?+ / ?- |
| 展開所有代碼塊 | Ctrl+Shift+NumPad+ | ??+ |
| 折疊所有代碼塊 | Ctrl+Shift+NumPad- | ??- |
| 關(guān)閉當(dāng)前編輯頁 | Ctrl+F4 | ?W |
| 查找接口的實(shí)現(xiàn)類 | CTRL+ALT+B | ??B |
| 復(fù)制類的全類名 | CTRL+ALT+SHIFT+C | ???C |
4.3 查詢替換快捷鍵
| 查詢?nèi)魏螙|西 | Double SHIFT | Double ? |
| 文件內(nèi)查找 | Ctrl+F | ?F |
| 文件內(nèi)替換 | Ctrl+R | ?R |
| 全局查找(根據(jù)路徑) | Ctrl+Shift+F | ??F |
| 全局替換(根據(jù)路徑) | Ctrl+Shift+R | ??R |
4.4 使用搜索快捷鍵
| 查找被使用處 | Alt+F7 | ?F7 |
| 查找當(dāng)前文件中的使用處 | Ctrl+F7 | ?F7 |
4.5 Debug 調(diào)試快捷鍵
| 單步調(diào)試,不進(jìn)入函數(shù)內(nèi)部 | F8 | F8 |
| 單步調(diào)試,進(jìn)入函數(shù)內(nèi)部 | F7 | F7 |
| 選擇要進(jìn)入的函數(shù)/強(qiáng)制進(jìn)入函數(shù) | Shift+F7/Alt+Shift+F7 | ?F7 |
| 跳出函數(shù) | Shift+F8 | ?F8 |
| 運(yùn)行到斷點(diǎn) | Alt+F9 | ?F9 |
| 執(zhí)行表達(dá)式查看結(jié)果 | Alt+F8 | ?F8 |
| 繼續(xù)執(zhí)行,進(jìn)入下一個(gè)斷點(diǎn)或執(zhí)行完程序 | F9 | ??R |
| 設(shè)置/取消當(dāng)前行斷點(diǎn) | Ctrl+F8 | ?F8 |
| 查看斷點(diǎn) | Ctrl+Shift+F8 | ??F8 |
??
4.6 Navigation(導(dǎo)航)快捷鍵
| 查找所有 | Double Shift | Double? |
| 查找類 | Ctrl+N | ?O |
| 查找所有類型文件 | Ctrl+Shift+N | ??O |
| 左右切換打開的編輯tab頁 | Alt+Right/Left | ?← / ?→ |
| 關(guān)閉當(dāng)前 Tab | Ctrl+Shift+F4 | ??F4 |
| 跳到指定行 | Ctrl+G | ?L |
| 顯示最近打開的文件 | Ctrl+E | ?E |
| 退回 / 前進(jìn)到上一個(gè)操作的地方 | Ctrl+Alt+Left / Right | ??← / ??→ |
| 跳到實(shí)現(xiàn)類/方法 | Ctrl+Alt+B | ??B |
| 顯示文件結(jié)構(gòu) | Ctrl+F12 | ?F12 |
| 顯示類層級(jí) | Ctrl+H | ?H |
| 顯示方法層級(jí) | Ctrl+Shift+H | ??H |
| 顯示類/方法調(diào)用層級(jí) | Ctrl+Alt+H | ??H |
4.6 General(通用)快捷鍵
| 切換全屏模式 | ??F | |
| 切換最大化編輯器 | Ctrl+Shift+F12 | ??F12 |
| 打開IDEA系統(tǒng)設(shè)置 | Ctrl+Alt+S | ?, |
| 打開項(xiàng)目結(jié)構(gòu)對(duì)話框 | Ctrl+Alt+Shift+S | ?; |
| 打開命令終端 | Alt+F12 | ?F12 |
??
5. idea 的 Debug 技巧
5.1 Debug開篇
??首先看下IDEA中Debug模式下的界面。如下是在IDEA中啟動(dòng)Debug模式,進(jìn)入斷點(diǎn)后的界面。就簡(jiǎn)單說下圖中標(biāo)注的8個(gè)地方:
以Debug模式啟動(dòng)服務(wù),左邊的一個(gè)按鈕則是以Run模式啟動(dòng)。在開發(fā)中,我一般會(huì)直接啟動(dòng)Debug模式,方便隨時(shí)調(diào)試代碼。
斷點(diǎn):在左邊行號(hào)欄單擊左鍵,或者快捷鍵Ctrl+F8 打上/取消斷點(diǎn),斷點(diǎn)行的顏色可自己去設(shè)置。
Debug窗口:訪問請(qǐng)求到達(dá)第一個(gè)斷點(diǎn)后,會(huì)自動(dòng)激活Debug窗口。如果沒有自動(dòng)激活,可以去設(shè)置里設(shè)置。
調(diào)試按鈕:一共有8個(gè)按鈕,調(diào)試的主要功能就對(duì)應(yīng)著這幾個(gè)按鈕,鼠標(biāo)懸停在按鈕上可以查看對(duì)應(yīng)的快捷鍵。在菜單欄Run里可以找到同樣的對(duì)應(yīng)的功能。
服務(wù)按鈕:可以在這里關(guān)閉/啟動(dòng)服務(wù),設(shè)置斷點(diǎn)等。
方法調(diào)用棧:這里顯示了該線程調(diào)試所經(jīng)過的所有方法,勾選右上角的[Show All Frames]按鈕,就不會(huì)顯示其它類庫的方法了,否則這里會(huì)有一大堆的方法。
[1] Variables:在變量區(qū)可以查看當(dāng)前斷點(diǎn)之前的當(dāng)前方法內(nèi)的變量。
[2] Watches:查看變量,可以將Variables區(qū)中的變量拖到Watches中查看
??
5.2 基本用法&快捷鍵
??Debug調(diào)試的功能主要對(duì)應(yīng)著圖一中4和5兩組按鈕:
1、首先說第一組按鈕,共8個(gè)按鈕,從左到右依次如下:
2、第二組按鈕,共7個(gè)按鈕,從上到下依次如下:
??
5.3 變量查看
??在Debug過程中,跟蹤查看變量的變化是非常必要的,這里就簡(jiǎn)單說下IDEA中可以查看變量的幾個(gè)地方,相信大部分人都了解。
??1、如下,在IDEA中,參數(shù)所在行后面會(huì)顯示當(dāng)前變量的值。
??2、光標(biāo)懸停到參數(shù)上,顯示當(dāng)前變量信息。點(diǎn)擊打開詳情如圖。我一般會(huì)使用這種方式,快捷方便。
??3、在Variables里查看,這里顯示當(dāng)前方法里的所有變量。
??4、在Watches里,點(diǎn)擊New Watch,輸入需要查看的變量。或者可以從Variables里拖到Watche里查看。
??如果你發(fā)現(xiàn)你沒有Watches,可能在下圖所在的地方。
??
5.4 計(jì)算表達(dá)式
??在前面提到的計(jì)算表達(dá)式如圖的按鈕,Evaluate Expression (Alt + F8) 。可以使用這個(gè)操作在調(diào)試過程中計(jì)算某個(gè)表達(dá)式的值,而不用再去打印信息。
??1、按Alt + F8或按鈕,或者,你可以選中某個(gè)表達(dá)式再Alt + F8,彈出計(jì)算表達(dá)式的窗口,如下,回車或點(diǎn)擊Evaluate計(jì)算表達(dá)式的值。
??這個(gè)表達(dá)式不僅可以是一般變量或參數(shù),也可以是方法,當(dāng)你的一行代碼中調(diào)用了幾個(gè)方法時(shí),就可以通過這種方式查看查看某個(gè)方法的返回值。
??2、設(shè)置變量,在計(jì)算表達(dá)式的框里,可以改變變量的值,這樣有時(shí)候就能很方便我們?nèi)フ{(diào)試各種值的情況了不是。
??
5.5 智能步入
??想想,一行代碼里有好幾個(gè)方法,怎么只選擇某一個(gè)方法進(jìn)入。之前提到過使用Step Into (Alt + F7) 或者 Force Step Into (Alt + Shift + F7)進(jìn)入到方法內(nèi)部,但這兩個(gè)操作會(huì)根據(jù)方法調(diào)用順序依次進(jìn)入,這比較麻煩。
??那么智能步入就很方便了,智能步入,這個(gè)功能在Run里可以看到,Smart Step Into (Shift + F7),如圖:
??按Shift + F7,會(huì)自動(dòng)定位到當(dāng)前斷點(diǎn)行,并列出需要進(jìn)入的方法,如圖,點(diǎn)擊方法進(jìn)入方法內(nèi)部。如果只有一個(gè)方法,則直接進(jìn)入,類似Force Step Into。
??
5.6 斷點(diǎn)條件設(shè)置
??通過設(shè)置斷點(diǎn)條件,在滿足條件時(shí),才停在斷點(diǎn)處,否則直接運(yùn)行。
通常,當(dāng)我們?cè)诒闅v一個(gè)比較大的集合或數(shù)組時(shí),在循環(huán)內(nèi)設(shè)置了一個(gè)斷點(diǎn),難道我們要一個(gè)一個(gè)去看變量的值?那肯定很累,說不定你還錯(cuò)過這個(gè)值得重新來一次。
??1、在斷點(diǎn)上右鍵直接設(shè)置當(dāng)前斷點(diǎn)的條件,如圖,我設(shè)置exist為true時(shí)斷點(diǎn)才生效。
??2、點(diǎn)擊View Breakpoints (Ctrl + Shift + F8),查看所有斷點(diǎn)。
????Java Line Breakpoints 顯示了所有的斷點(diǎn),在右邊勾選Condition,設(shè)置斷點(diǎn)的條件。
????勾選Log message to console,則會(huì)將當(dāng)前斷點(diǎn)行輸出到控制臺(tái),如圖6.3
勾選Evaluate and log,可以在執(zhí)行這行代碼是計(jì)算表達(dá)式的值,并將結(jié)果輸出到控制臺(tái)。
??
5.7 多線程調(diào)試
??一般情況下我們調(diào)試的時(shí)候是在一個(gè)線程中的,一步一步往下走。但有時(shí)候你會(huì)發(fā)現(xiàn)在Debug的時(shí)候,想發(fā)起另外一個(gè)請(qǐng)求都無法進(jìn)行了?
??那是因?yàn)镮DEA在Debug時(shí)默認(rèn)阻塞級(jí)別是ALL,會(huì)阻塞其它線程,只有在當(dāng)前調(diào)試線程走完時(shí)才會(huì)走其它線程。可以在View Breakpoints里選擇Thread,如圖,然后點(diǎn)擊Make Default設(shè)置為默認(rèn)選項(xiàng),也可以在斷點(diǎn)出右鍵進(jìn)行設(shè)置。
??切換線程,在圖7.2中Frames的下拉列表里,可以切換當(dāng)前的線程,如下我這里有兩個(gè)Debug的線程,切換另外一個(gè)則進(jìn)入另一個(gè)Debug的線程。
??
5.8 回退斷點(diǎn)
??在調(diào)試的時(shí)候,想要重新走一下流程而不用再次發(fā)起一個(gè)請(qǐng)求?
??1、首先認(rèn)識(shí)下這個(gè)方法調(diào)用棧,如圖8.1,首先請(qǐng)求進(jìn)入DemoController的insertDemo方法,然后調(diào)用insert方法,其它的invoke我們且先不管,最上面的方法是當(dāng)前斷點(diǎn)所在的方法。
??2、斷點(diǎn)回退
??所謂的斷點(diǎn)回退,其實(shí)就是回退到上一個(gè)方法調(diào)用的開始處,在IDEA里測(cè)試無法一行一行地回退或回到到上一個(gè)斷點(diǎn)處,而是回到上一個(gè)方法。
??回退的方式有兩種,一種是Drop Frame按鈕(圖8.2),按調(diào)用的方法逐步回退,包括三方類庫的其它方法(取消Show All Frames按鈕會(huì)顯示三方類庫的方法,如圖8.3)。
??第二種方式,在調(diào)用棧方法上選擇要回退的方法,右鍵選擇Drop Frame(圖8.4),回退到該方法的上一個(gè)方法調(diào)用處,此時(shí)再按F9(Resume Program),可以看到程序進(jìn)入到該方法的斷點(diǎn)處了。
但有一點(diǎn)需要注意,斷點(diǎn)回退只能重新走一下流程,之前的某些參數(shù)/數(shù)據(jù)的狀態(tài)已經(jīng)改變了的是無法回退到之前的狀態(tài)的,如對(duì)象、集合、更新了數(shù)據(jù)庫數(shù)據(jù)等等。
??
5.9 中斷Debug
??想要在Debug的時(shí)候,中斷請(qǐng)求,不要再走剩余的流程了?
??有些時(shí)候,我們看到傳入的參數(shù)有誤后,不想走后面的流程了,怎么中斷這次請(qǐng)求呢(后面的流程要?jiǎng)h除數(shù)據(jù)庫數(shù)據(jù)呢…),難道要關(guān)閉服務(wù)重新啟動(dòng)程序?嗯,我以前也是這么干的。
??確切的說,我也沒發(fā)現(xiàn)可以直接中斷請(qǐng)求的方式(除了關(guān)閉服務(wù)),但可以通過Force Return,即強(qiáng)制返回來避免后續(xù)的流程,如圖9.1。
??點(diǎn)擊Force Return,彈出Return Value的窗口,我這個(gè)方法的返回類型為Map,所以,我這里直接返回 results,來強(qiáng)制返回,從而不再進(jìn)行后續(xù)的流程。或者你可以new HashMap<>()。
總結(jié)
以上是生活随笔為你收集整理的必先利其器之 IDEA 磨刀好杀猪的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工欲善其事必先利其器——AWS认证是你最
- 下一篇: P1_M4_L5 Lateral Dyn