亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

JBuilder2005實現重構之雜項重構

2019-11-18 15:45:25
字體:
來源:轉載
供稿:網友
1、優化import

   簡而言之,通過優化import的設置可以達到以下的目的:

   去除無用的import語句:如在類中沒有使用任何包中的類,則這個包的import語句可以刪除。

   設置包的閾值:當前類引用包中類的數目大于這個閾值時,引入整個包(如import java.io.*),否則為包中每個被引用的類單獨指定的一個import語句(如import java.io.File)。

   設置包的排列順序:按照一般的習慣,按包的常用程度從高到低進行排列,常用的包放在前面引入。一般情況下,JDK經典的包放在最前面(以java.為前綴),JDK擴展包緊跟其后(以javax.為前綴),接著是第三方類庫包(如org.apache.*),再次是自己開發的公用類庫,最后才是工程中的其他類。

   通過PRoject->Project Properties...->Java Formating->在Imports設置頁中切換到Threshold標

JBuilder2005實現重構之雜項重構(圖一)
圖 25 設置包閾值對話框
   簽頁中通過Package import threshold指定包的閾值,默認為0表示進行優化import后,用通配符以整個包的形式分別引入。

   你也可以勾選Always import classes項,將每個類用單獨的import語句引入,這相當于將Package import threshold設置為無窮大。

   在Imports設置頁中切換到Sort Order標簽頁,在此指定import代碼段的包引入順序及格式。假設myrefactor.jpx工程中有一個myrefactor.sub1的子包,我們通過以下步驟將其置為import引入代碼段的最后,并在前面添加一個空行:

   1) 點擊Add blank line在列表中添加一個<blank line>,表示在import代碼段中添加一個空行。

   2) 點擊Add prefix...在彈出的Add Prefix對話框中選擇myrefactor.sub1包。

   3) 點擊OK保存設置。

JBuilder2005實現重構之雜項重構(圖二)
圖 26 import代碼段樣式設置對話框
   此外,還可以通過Move Up和Move Down調整包在引入代碼段中的位置。列表中有一個<*>項,表示其他所有未匹配的包,如有一個以com.打開的包就放置在<*>的位置。

   設置完后,在工程窗格的<Project Source>節點上右擊,選擇Format Package...在彈出的Fomcat Code對話框中確認選擇Optimize imports項,按OK后,JBuilder對工程中所有的類進行import代碼段進行優化重構。

  2、自動添加異常捕捉

   自動添加異常捕捉功能,從嚴格意義上說并不屬性代碼重構的范疇,因為編譯期的異常是一定要有捕捉代碼的,否則程序無法通過編譯。但在某些情況下,自動添加異常捕捉就是地地道道的代碼重構了,請看下面的代碼:

   代碼清單 “面向編譯”的異常捕捉

1. public void autoCatch()
2. {
3.  try {
4.   FileInputStream fis = null ;
5.   byte[] bArr = new byte[1024] ;
6.   //會拋出FileNotFoundException
7.   fis = new FileInputStream("D:/1.txt") ;
8.   //會拋出IOException
9.   fis.read(bArr) ;
10.  }
11.  catch(Exception ex) {
12.  }
13. }

   第7行語句會拋出FileNotFoundExcetion,而第9行會拋出IOException,理應分別捕捉這兩個異常,但是開發人員也許對異常并不感愛好,所以直接捕捉Exception敷衍了事。由于Exception是所有異常的祖先類,所以這種異常捕捉方式并不會引發編譯錯誤,但它確實沒有做什么有意義的事,只是為了通過編譯罷了,稱之為“面向編譯”的異常捕捉,即只為通過編譯。

   程序發生異常時,要么用throws將異常踢給調用者,要么直接處理異常。假如打算直接處理異常,就必須對代碼中的異常分別處理,這樣才可以能夠異常的具體信息,以及具體是哪個異常引起的。對于程序的用戶來說,具體的錯誤信息可以讓他們更直接知道問題所在,而程序的調用者來說,具體的異??梢宰屗麄冞M行分別對待,分別處理,這種處理異常的方式稱為“面向問題”的異常捕捉。我們擬將這段代碼重構為以下的形式,如下所示:

   代碼清單 16 “面向問題”的異常捕捉

1. public void autoCatch()
2. {
3.  FileInputStream fis = null ;
4.  byte[] bArr = new byte[1024] ;
5.  try {
6.   //會拋出FileNotFoundException
7.   fis = new FileInputStream("D://1.txt") ;
8.   //會拋出IOException
9.   fis.read(bArr) ;
10.  }
11.  catch(FileNotFoundException ex) {
12.   System.out.println("D://1.txt文件不存在,請檢查") ;
13.  }
14.  catch(IOException ex) {
15.   System.out.println("D://1.txt文件讀寫發生異常,異常信息為:" +
16.   ex.getMessage()) ;
17.  }
18.  finally {
19.   if(fis != null) {
20.    try {
21.     fis.close() ;
22.    }
23.   catch(IOException ex1) {
24.    System.out.println("關閉文件輸入流的時候發生異常,異常信息為:
25.     " + ex1.getMessage()) ;
26.   }
27.  }
28. }
29. }

   你需要做的是刪除掉原來的“面向編譯”的異常捕捉代碼(即第5行和第10~12行),選中第6~9行,按Ctrl+Shift+C,JBuilder自動分析這段代碼,發現這段代碼中共有引發兩個異常,分別為每個異常生成兩個捕捉塊,代碼如下:

   代碼清單 17 通過Ctrl+Shift+C自動添加異常捕捉代碼塊

1. public void autoCatch()
2. {
3.  FileInputStream fis = null ;
4.  byte[] bArr = new byte[1024] ;
5.  try {
6.   //會拋出FileNotFoundException
7.   fis = new FileInputStream("D://1.txt") ;
8.   //會拋出IOException
9.   fis.read(bArr) ;
10.  }
11.  catch(FileNotFoundException ex) {
12.  }
13.  catch(IOException ex) {
14.  }

15. }
進入討論組討論。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲另类xxxx| 久久香蕉国产线看观看网| 亚洲在线观看视频网站| 欧美午夜www高清视频| yw.139尤物在线精品视频| 日本精品视频在线播放| 91精品中文在线| 成人av在线亚洲| 亚洲精品一区二区三区不| 日韩人体视频一二区| 亚洲激情在线观看视频免费| 成人a级免费视频| 国产v综合v亚洲欧美久久| 国产午夜精品麻豆| 久久激情视频久久| 成人激情黄色网| 日韩免费av片在线观看| 国产欧美日韩中文| 亚洲欧美日韩天堂一区二区| 国产精品亚洲自拍| 日韩在线高清视频| 91在线观看免费网站| 久久成人av网站| 亚洲国产精品va在线| 91免费看视频.| 亚洲性线免费观看视频成熟| 91九色国产社区在线观看| 日韩视频免费中文字幕| www日韩欧美| 日韩欧美中文字幕在线播放| 国产亚洲精品久久久久久777| 欧美日韩一区二区免费在线观看| 日韩av在线免费观看| 亚洲视频一区二区三区| 国产精品久久久久久久久久小说| 亚洲自拍偷拍色片视频| 久久久久久久久久久亚洲| 草民午夜欧美限制a级福利片| 国产一区二区三区18| 亚洲国产精品高清久久久| 97人洗澡人人免费公开视频碰碰碰| 在线观看国产成人av片| 欧美成人激情在线| www亚洲精品| 91av在线播放| 日韩美女毛茸茸| 亚洲欧美一区二区激情| 成人欧美一区二区三区黑人| 亚洲欧洲免费视频| 亚洲精品国精品久久99热一| 欧美精品久久久久a| 日韩一区二区三区国产| 久久99精品久久久久久青青91| 一区二区三区www| 一本一本久久a久久精品综合小说| 亚洲bt天天射| 欧美成人在线网站| 亚洲精品www久久久| 久久久国产视频| 中文字幕av一区二区三区谷原希美| 国产日本欧美一区二区三区在线| 九九热这里只有精品免费看| 国产精品99导航| 亚洲天堂精品在线| 国产精品欧美日韩| 97国产真实伦对白精彩视频8| 91影院在线免费观看视频| 欧美老女人xx| 亚洲精品大尺度| 性色av一区二区三区免费| 欧美大全免费观看电视剧大泉洋| 欧美成人高清视频| 欧美日韩午夜剧场| 中文字幕日韩在线观看| 亚洲免费视频观看| 欧美电影免费观看高清完整| 国产69精品99久久久久久宅男| 欧美极品美女视频网站在线观看免费| 国产精品精品久久久久久| 91夜夜揉人人捏人人添红杏| 亚洲精品视频中文字幕| 午夜精品一区二区三区av| 国产精品亚洲一区二区三区| 国产精品扒开腿做爽爽爽的视频| 亚洲一品av免费观看| 成人福利免费观看| 国产精品一二三在线| 国产一区二区三区欧美| 日韩中文在线视频| 久久色精品视频| 精品无人国产偷自产在线| 亚洲最大福利视频网站| 精品毛片网大全| 日韩亚洲一区二区| 黄色一区二区在线观看| 欧美亚洲激情视频| 国产手机视频精品| 中文字幕一区二区三区电影| 国产日产亚洲精品| 国产丝袜一区视频在线观看| 亚洲色图18p| 午夜精品久久久久久久白皮肤| 欧美午夜女人视频在线| 国产69精品久久久久99| 国产精品综合不卡av| 欧美另类高清videos| 国产成人精品日本亚洲专区61| 日韩高清免费观看| 大伊人狠狠躁夜夜躁av一区| 国产91精品青草社区| 日韩av网站在线| 欧美日韩国产精品一区二区不卡中文| 91视频国产高清| 亚洲欧美一区二区三区四区| 欧美色视频日本高清在线观看| 九九九久久久久久| 国产va免费精品高清在线观看| 亚洲国产成人一区| 国产精品2018| 欧美性猛交xxxx乱大交蜜桃| 亚洲片av在线| 欧美性生交xxxxxdddd| 国产精品一区二区久久| 亚洲字幕一区二区| 国产综合久久久久久| 国产亚洲欧洲高清一区| 国产精品91久久久久久| 亚洲国产精品久久精品怡红院| 国产99久久精品一区二区永久免费| 91在线观看免费高清| 久久伊人免费视频| 久久久久久久91| 日本欧美一级片| 亚洲男人天堂九九视频| 久久精品在线播放| 亚洲成人在线视频播放| 欧美大尺度电影在线观看| 欧美第一黄色网| 国内精品久久久久久久| 中文字幕视频一区二区在线有码| 日韩欧美一区二区三区久久| 啊v视频在线一区二区三区| 日韩精品视频在线观看免费| 亚洲精品日韩激情在线电影| 欧美专区日韩视频| 欧美日韩一区二区免费在线观看| 日韩av在线电影网| 久久精品电影网站| 日韩欧美大尺度| 久久久久久久999精品视频| 日韩69视频在线观看| 欧美午夜美女看片| 欧美黑人极品猛少妇色xxxxx| 青草青草久热精品视频在线网站| 久久视频国产精品免费视频在线| 国外日韩电影在线观看| 日本一欧美一欧美一亚洲视频| 综合av色偷偷网| 日韩免费在线视频| 欧美乱妇高清无乱码| 欧美精品在线极品| 欧美一级在线亚洲天堂| 成人免费视频网址| 欧美成人精品三级在线观看|