国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

JBuilder2005實現重構之升級到JDK5.02

2019-11-17 06:01:38
字體:
來源:轉載
供稿:網友
3、自動裝/拆箱

  每個基本數據類型如double、int都有對應的封裝類Double、Integer,在低版本的JDK中,需要一些無聊的代碼完成基本數據類型到對應封裝類的轉換。JDK 5.0的自動裝/拆箱特性可以自動完成這種轉換,使代碼更加簡潔,來看下面未用自動裝/拆箱的代碼:

  代碼清單 13 未使用自動裝/拆箱的代碼

1. package myrefactor ;
2. public class Jdk5
3. {
4. …
5. public static void autoBoxingPReliminary(Integer intObject)
6. {
7. System.out.println(intObject) ;
8. }
9.
10. public static void autoBoxingRefactoring()
11. {
12. autoBoxingPreliminary(new Integer(8)) ;
13. }
14. …
15. }

  第5~8行定義的autoBoxingPreliminary()方法需要一個Integer的入參,autoBoxingRefactoring()在第12行老老實實滿足了這種要求。JBuilder提供了一個非常方便進行自動裝/拆箱重構的方法,打開需要做此重構的類,在編輯器的任何地方:Ctrl+Shift+R->Introduce Auto(un)boxing,JBuilder搜索當前Class文件需要自動裝/拆箱的地方,一并重構。如上面的代碼段進行自動裝/拆箱重構后,將調用為:

  代碼清單 14 自動裝/拆箱重構后的代碼

1. package myrefactor ;
2. public class Jdk5
3. {
4.  …
5.  public static void autoBoxingPreliminary(Integer intObject)
6.  {
7.   System.out.println(intObject) ;
8.  }
9.
10.  public static void autoBoxingRefactoring()
11.  {
12.   autoBoxingPreliminary(8) ;
13.  }
14.  …
15. }

  第12行直接傳入8而非new Integer(8),代碼工整了許多。

  4、非泛型轉泛型

  在低版本中,集合中的對象在使用前需要進行顯示的類型轉換,如String s = (String)iter.next(),JDK 5.0引入了泛型的概念,加入了編譯期類型安全檢查,取消了強制類型轉換,節省了代碼,下面是大家熟悉的傳統的List操作代碼:

  代碼清單 15 非泛型的代碼

1. public static void genericsArrayList()
2. {
3.  List list = new ArrayList() ;
4.  list.add(0 , new Integer(23)) ;
5.  int total = ( (Integer) list.get(0)).intValue() ;
6.  System.out.println(total) ;
7. }

  將光標移到第3行(即集合定義的代碼行):Ctrl+Shift+R->Introduce Generics調出泛型重構對話框:

           JBuilder2005實現重構之升級到JDK5.02
                   圖 23 泛型重構對話框

  在Type Argument中指定一個數據類型,JBuilder已經通過分析代碼默認了最適合的數據類型,一般情況下無需調整。按OK后完成泛型的代碼重構:

  代碼清單 泛型的代碼

1. public static void genericsArrayList()
2. {
3.  Listlist = new ArrayList() ;
4.  list.add(0 , new Integer(23)) ;
5.  int total = (list.get(0)).intValue() ;
6.  System.out.println(total) ;
7. }

  注重第3行和第5行代碼的變化。也許有人會指出第4行應該調整為list.add(23)才對?。渴堑模恍枰阏{用前一小節的自動裝/拆箱重構就可以完成這樣的轉換了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 贵南县| 甘谷县| 中山市| 定远县| 绥棱县| 黔江区| 安图县| 汉沽区| 桓台县| 梓潼县| 汤原县| 北安市| 台南市| 莫力| 永善县| 云梦县| 拉萨市| 绵竹市| 东丰县| 裕民县| 宜春市| 剑川县| 公主岭市| 乐山市| 泊头市| 南宁市| 鲜城| 澜沧| 衢州市| 平阳县| 新余市| 北辰区| 昭平县| 石狮市| 沁水县| 万年县| 襄城县| 六枝特区| 辽源市| 桐乡市| 乌鲁木齐县|