超詳細(xì)的Intellij IDEA 看源碼必備技能
最近正好也沒什么可忙的,就回過頭來鼓搗過去的知識點,到Servlet部分時,以前學(xué)習(xí)的時候硬是把從上到下的繼承關(guān)系和接口實現(xiàn)記得亂七八糟。
這次利用了IDEA的diagram,結(jié)果一目了然,也是好用到炸裂,就此分享。
1、查看圖形形式的繼承鏈
在你想查看的類的標(biāo)簽頁內(nèi),點擊右鍵,選擇 Diagrams,其中有 show 和 show ... Popup,只是前者新建在標(biāo)簽頁內(nèi),后者以浮窗的形式展示:
實際上,你也可以從左邊的項目目錄樹中,對你想查看的類點擊右鍵,同樣選擇Diagrams,效果是一樣的:
然后你就會得到如下圖所示的繼承關(guān)系圖形,以自定義的Servlet為例:
顯而易見的是:
- 藍(lán)色實線箭頭是指繼承關(guān)系
- 綠色虛線箭頭是指接口實現(xiàn)關(guān)系
2、優(yōu)化繼承鏈圖形,想我所想
2.1 去掉不關(guān)心的類
得到的繼承關(guān)系圖形,有些并不是我們想去了解的,比如上圖的Object和Serializable,我們只想關(guān)心Servlet重要的那幾個繼承關(guān)系,怎么辦?
簡單,刪掉。點擊選擇你想要刪除的類,然后直接使用鍵盤上的delete鍵就行了。
清理其他類的關(guān)系后圖形如下:
2.2 展示類的詳細(xì)信息
有人說,誒,這怎么夠呢,那繼承下來的那些方法我也想看?。亢唵?,IDEA通通滿足你。
在頁面點擊右鍵,選擇 show categories,根據(jù)需要可以展開類中的屬性、方法、構(gòu)造方法等等。當(dāng)然,第二種方法也可以直接使用上面的工具欄:
然后你就會得到:
什么,方法里你還想篩選,比如說想看protected權(quán)限及以上范圍的?簡單,右鍵選擇 Change Visibility Level,根據(jù)需要調(diào)整即可。
什么,你嫌圖形太小你看不清楚?IDEA也可以滿足你,按住鍵盤的Alt,竟然出現(xiàn)了放大鏡,驚不驚喜,意不意外?IDEA 快捷鍵終極大全,建議收藏。
2.3 加入其他類到關(guān)系中來
當(dāng)我們還需要查看其他類和當(dāng)前類是否有繼承上的關(guān)系的時候,我們可以選擇加其加入到當(dāng)前的繼承關(guān)系圖形中來。關(guān)注微信公眾號:Java技術(shù)棧,在后臺回復(fù):idea,可以獲取我整理的 N 篇 idea 教程,都是干貨。
在頁面點擊右鍵,選擇 Add Class to Diagram,然后輸入你想加入的類就可以了:
例如我們添加了一個Student類,如下圖所示。好吧,并沒有任何箭頭,看來它和當(dāng)前這幾個類以及接口并沒有發(fā)生什么不可描述的關(guān)系:
2.4 查看具體代碼
如果你想查看某個類中,比如某個方法的具體源碼,當(dāng)然,不可能給你展現(xiàn)在圖形上了,不然屏幕還不得撐炸?Intellij IDEA 閱讀源碼的 4 個絕技,這篇必看。
但是可以利用圖形,或者配合IDEA的structure方便快捷地進(jìn)入某個類的源碼進(jìn)行查看。
雙擊某個類后,你就可以在其下的方法列表中游走,對于你想查看的方法,選中后點擊右鍵,選擇 Jump to Source:
在進(jìn)入某個類后,如果還想快速地查看該類的其他方法,還可以利用IDEA提供的structure功能:
選擇左側(cè)欄的structure之后,如上圖左側(cè)會展示該類中的所有方法,點擊哪個方法,頁面內(nèi)容就會跳轉(zhuǎn)到該方法部分去。
3、最后
用上面提到的的IDEA這些功能,學(xué)習(xí)和查看類關(guān)系,了解諸如主流框架源碼之類的東西,可以說是非常舒服了。
到此這篇關(guān)于超詳細(xì)的Intellij IDEA 看源碼必備技能的文章就介紹到這了,更多相關(guān)intellij idea 源碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java基礎(chǔ)學(xué)習(xí)之ArrayList類概述與常用方法
這篇文章主要為大家簡單的介紹Java中ArrayList類的概述、常用方法及存儲字符串并遍歷,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-08-08基于java中stack與heap的區(qū)別,java中的垃圾回收機(jī)制的相關(guān)介紹
本篇文章小編將為大家介紹,基于java中stack與heap的區(qū)別,java中的垃圾回收機(jī)制的相關(guān)介紹,需要的可以參考一下2013-04-04ThreadPoolExecutor核心線程數(shù)和RocketMQ消費線程調(diào)整詳解
這篇文章主要介紹了ThreadPoolExecutor核心線程數(shù)和RocketMQ消費線程調(diào)整詳解,Rocketmq 消費者在高峰期希望手動減少消費線程數(shù),通過DefaultMQPushConsumer.updateCorePoolSize方法可以調(diào)用內(nèi)部的setCorePoolSize設(shè)置多線程核心線程數(shù),需要的朋友可以參考下2023-10-10Java?數(shù)據(jù)結(jié)構(gòu)與算法系列精講之?dāng)?shù)組
數(shù)組是有序的元素序列,若將有限個類型相同的變量的集合命名,那么這個名稱為數(shù)組名。組成數(shù)組的各個變量稱為數(shù)組的分量,也稱為數(shù)組的元素,有時也稱為下標(biāo)變量。數(shù)組是在程序設(shè)計中,為了處理方便, 把具有相同類型的若干元素按有序的形式組織起來的一種形式2022-02-02IDEA如何設(shè)置SVN提交忽略文件 target.iml
使用IDEA的SVN插件時,可能會遇到提交不必要文件的問題,解決這個問題有兩種方法:第一種是在IDEA設(shè)置中的File Types下的Ignore files and folders添加需要忽略的文件或文件夾;第二種是使用SVN客戶端TortoiseSVN,在項目目錄點擊右鍵選擇properties2024-10-10