<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          用 IDEA 看源碼的正確姿勢(shì)!你掌握了嗎?

          共 1901字,需瀏覽 4分鐘

           ·

          2021-11-26 21:37

          作者 | Dulk

          來(lái)源 | https://www.cnblogs.com/deng-cc/p/6927447.html

          最近正好也沒(méi)什么可忙的,就回過(guò)頭來(lái)鼓搗過(guò)去的知識(shí)點(diǎn),到 Servlet 部分時(shí),以前學(xué)習(xí)的時(shí)候硬是把從上到下的繼承關(guān)系和接口實(shí)現(xiàn)記得亂七八糟。

          這次利用了 IDEA 的 diagram,結(jié)果一目了然,也是好用到炸裂,就此分享。

          1、查看圖形形式的繼承鏈

          在你想查看的類(lèi)的標(biāo)簽頁(yè)內(nèi),點(diǎn)擊右鍵,選擇 Diagrams,其中有 show 和 show ... Popup,只是前者新建在標(biāo)簽頁(yè)內(nèi),后者以浮窗的形式展示:

          實(shí)際上,你也可以從左邊的項(xiàng)目目錄樹(shù)中,對(duì)你想查看的類(lèi)點(diǎn)擊右鍵,同樣選擇 Diagrams,效果是一樣的:

          然后你就會(huì)得到如下圖所示的繼承關(guān)系圖形,以自定義的 Servlet 為例:

          顯而易見(jiàn)的是:

          • 藍(lán)色實(shí)線箭頭 是指繼承關(guān)系
          • 綠色虛線箭頭 是指接口實(shí)現(xiàn)關(guān)系

          2、優(yōu)化繼承鏈圖形,想我所想

          2.1 去掉不關(guān)心的類(lèi)

          得到的繼承關(guān)系圖形,有些并不是我們想去了解的,比如上圖的 Object 和 Serializable,我們只想關(guān)心 Servlet 重要的那幾個(gè)繼承關(guān)系,怎么辦?

          簡(jiǎn)單,刪掉。點(diǎn)擊選擇你想要?jiǎng)h除的類(lèi),然后直接使用鍵盤(pán)上的 delete 鍵就行了。清理其他類(lèi)的關(guān)系后圖形如下:

          如果您正在學(xué)習(xí)Spring Cloud,推薦一個(gè)連載多年還在繼續(xù)更新的免費(fèi)教程:https://blog.didispace.com/spring-cloud-learning/

          2.2 展示類(lèi)的詳細(xì)信息

          有人說(shuō),誒,這怎么夠呢,那繼承下來(lái)的那些方法我也想看啊?簡(jiǎn)單,IDEA 通通滿足你。

          在頁(yè)面點(diǎn)擊右鍵,選擇 show categories,根據(jù)需要可以展開(kāi)類(lèi)中的屬性、方法、構(gòu)造方法等等。當(dāng)然,第二種方法也可以直接使用上面的工具欄:

          然后你就會(huì)得到:

          什么,方法里你還想篩選,比如說(shuō)想看 protected 權(quán)限及以上范圍的?簡(jiǎn)單,右鍵選擇 Change Visibility Level,根據(jù)需要調(diào)整即可。

          什么,你嫌圖形太小你看不清楚?IDEA 也可以滿足你,按住鍵盤(pán)的 Alt,竟然出現(xiàn)了放大鏡,驚不驚喜,意不意外?

          2.3 加入其他類(lèi)到關(guān)系中來(lái)

          當(dāng)我們還需要查看其他類(lèi)和當(dāng)前類(lèi)是否有繼承上的關(guān)系的時(shí)候,我們可以選擇加其加入到當(dāng)前的繼承關(guān)系圖形中來(lái)。

          在頁(yè)面點(diǎn)擊右鍵,選擇 Add Class to Diagram,然后輸入你想加入的類(lèi)就可以了:

          例如我們添加了一個(gè) Student 類(lèi),如下圖所示。好吧,并沒(méi)有任何箭頭,看來(lái)它和當(dāng)前這幾個(gè)類(lèi)以及接口并沒(méi)有發(fā)生什么不可描述的關(guān)系:

          2.4 查看具體代碼

          如果你想查看某個(gè)類(lèi)中,比如某個(gè)方法的具體源碼,當(dāng)然,不可能給你展現(xiàn)在圖形上了,不然屏幕還不得撐炸?

          但是可以利用圖形,或者配合 IDEA 的 structure 方便快捷地進(jìn)入某個(gè)類(lèi)的源碼進(jìn)行查看。

          雙擊某個(gè)類(lèi)后,你就可以在其下的方法列表中游走,對(duì)于你想查看的方法,選中后點(diǎn)擊右鍵,選擇 Jump to Source:

          在進(jìn)入某個(gè)類(lèi)后,如果還想快速地查看該類(lèi)的其他方法,還可以利用 IDEA 提供的 structure 功能:

          選擇左側(cè)欄的 structure 之后,如上圖左側(cè)會(huì)展示該類(lèi)中的所有方法,點(diǎn)擊哪個(gè)方法,頁(yè)面內(nèi)容就會(huì)跳轉(zhuǎn)到該方法部分去。

          另外,如果您正在學(xué)習(xí)Spring Cloud,推薦一個(gè)連載多年還在繼續(xù)更新的免費(fèi)教程:https://blog.didispace.com/spring-cloud-learning/

          3、最后

          用上面提到的的 IDEA 這些功能,學(xué)習(xí)和查看類(lèi)關(guān)系,了解諸如主流框架源碼之類(lèi)的東西,可以說(shuō)是非常舒服了。

          往期推薦

          我是如何做到的:不切換 Git 分支,同時(shí)在多個(gè)分支上工作的?

          Spring Security 和 Shiro 該如何選擇?

          人人影視:不可能再恢復(fù)或重啟,App的尸體可以刪除了

          Spring Boot 2.6之后,動(dòng)態(tài)權(quán)限控制終于可以用起來(lái)了!

          浪潮編了個(gè)“謊言”舉報(bào)我們...


          技術(shù)交流群

          最近有很多人問(wèn),有沒(méi)有讀者交流群,想知道怎么加入。加入方式很簡(jiǎn)單,有興趣的同學(xué),只需要點(diǎn)擊下方卡片,回復(fù)“加群,即可免費(fèi)加入我們的高質(zhì)量技術(shù)交流群!

          點(diǎn)擊閱讀原文,送你免費(fèi)Spring Boot教程!

          瀏覽 26
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  91香蕉视频在线播放 | 2027AV天堂 | 香蕉A视频 | 日日夜夜拍拍 | 亚洲欧美不卡高清在线 |