引言
做過項目開發的童靴,應該會有這樣的經歷,就是剛進公司領導二話不說直接丟個項目,而且沒有任何文檔,讓熟悉一下,一兩周就讓上手寫代碼。打開項目后就看到一堆類源碼,完全不知道從何處入手,應該如何分析項目源碼。
IDEA 工具提供查看類圖功能可以幫助你快速分析項目中的類與類之間的關系如何,每個類是干嘛的,有哪些方法等。
IDEA 查看類圖
查看圖形形式的繼承鏈
在你想查看的類的標簽頁內,點擊右鍵,選擇 Diagrams,其中有 show 和 show ... Popup,只是前者新建在標簽頁內,后者以浮窗的形式展示:
實際上,你也可以從左邊的項目目錄樹中,對你想查看的類點擊右鍵,同樣選擇 Diagrams,效果是一樣的:
然后你就會得到如下圖所示的繼承關系圖形,以自定義的Servlet為例:
顯而易見的是:
-
藍色實線箭頭是指繼承關系
-
綠色虛線箭頭是指接口實現關系
優化繼承鏈圖形
去掉不關心的類
得到的繼承關系圖形,有些並不是我們想去了解的,比如上圖的Object和Serializable,我們只想關心Servlet重要的那幾個繼承關系,怎么辦?
簡單,刪掉。點擊選擇你想要刪除的類,然后直接使用鍵盤上的delete鍵就行了。清理其他類的關系后圖形如下:
展示類的詳細信息
有人說,誒,這怎么夠呢,那繼承下來的那些方法我也想看啊?簡單,IDEA通通滿足你。
在頁面點擊右鍵,選擇 show categories,根據需要可以展開類中的屬性、方法、構造方法等等。當然,第二種方法也可以直接使用上面的工具欄:
然后你就會得到:
什么,方法里你還想篩選,比如說想看protected權限及以上范圍的?簡單,右鍵選擇 Change Visibility Level,根據需要調整即可。
什么,你嫌圖形太小你看不清楚?IDEA也可以滿足你,按住鍵盤的Alt,竟然出現了放大鏡,驚不驚喜,意不意外?
加入其他類到關系中來
當我們還需要查看其他類和當前類是否有繼承上的關系的時候,我們可以選擇加其加入到當前的繼承關系圖形中來。
在頁面點擊右鍵,選擇 Add Class to Diagram,然后輸入你想加入的類就可以了:
查看具體代碼
如果你想查看某個類中,比如某個方法的具體源碼,當然,不可能給你展現在圖形上了,不然屏幕還不得撐炸?
但是可以利用圖形,或者配合IDEA的structure方便快捷地進入某個類的源碼進行查看。
雙擊某個類后,你就可以在其下的方法列表中游走,對於你想查看的方法,選中后點擊右鍵,選擇 Jump to Source:
總結
用上面提到的的 IDEA 這些功能,學習和查看類關系,了解諸如主流框架源碼之類的東西,可以說是非常舒服了。