溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JBuilder2005實現重構之升級到JDK5.0的示例分析

發布時間:2021-11-20 15:35:47 來源:億速云 閱讀:170 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關JBuilder2005實現重構之升級到JDK5.0的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

想把Jbuilder X 下的jdk換成 1.6  ,結果出現錯誤,不支持如下的寫法

ArrayListlist=new ArrayList();

在網上一查,結果發現要修給 Project->Project Properties...->Build->在Java設置頁,將Target VM設置 Java 2 SDK,v 5.0 and later。

但是我的Jbuilder X  里面沒有這一選項設置,Jbuilder 下升級jdk 沒有成功

現將JBuilder2005實現重構之升級到JDK5.0- - 轉載到此

JDK 5.0在語法上做許多重大的改進,雖然在低版本JDK中開發的源代碼幾乎可以不做任何修改就可直接運行于JDK 5.0中。但還是有必須進行版本升級的重構,這樣就可以應用JDK 5.0的for和while循環、自動裝/拆箱、泛型等改進功能,在使代碼更加緊湊的同時,使代碼性能得到優化。所以JBuilder專門為低版本提升到JDK 5.0的程序提供了3個重構功能,方便你無縫地實現升級。

  1、使工程基于JDK 5.0

  雖說JBuilder 2005支持JDK 5.0,但其默認的JDK版本是1.4.2,要使工程的JDK版本為5.0,你必須安裝JDK 5.0,并在JBuilder下  進行相應的設置。關于JDK 5.0的詳細設置我們不作過多的描述,簡而言之,它主要包括以下的步驟:

  1) 安裝JDK 5.0(從http://java.sun.com/j2se/1.5.0/download.jsp下載)。

  2) Tools->Configure->JDKs...通用指定JDK5.0的安裝路徑設置JDK。

  3) Project->Project Properties...->在Paths設置頁,將JDK設置為JDK 5.0。

  4) Project->Project Properties...->Build->在Java設置頁,將Language features:設置為Java 2 SDK,V 5.0(generics enabled),將Target VM設置為Java 2 SDK,v 5.0 and later。

  只有將工程的JDK版本設置為JDK 5.0,才可以進行有關JDK 5.0的代碼重構。

  2、優化循環

  JDK 5.0引入了更高效的循環,稱之為JDK 5.0樣式的循環,包括:

  .數組遍歷

  .List遍歷

  .Iterator的for循環

  .Iterator的while循環

  JBuilder提供了將低版本JDK對應的循環代碼轉換這JDK5.0循環風格的重構方法,我們通過一個數組遍歷的重構對此做說明,請看下面的低版本JDK循環代碼:

  代碼清單 11 低版本循環樣式

1. public static void arrayLoopRefactoring()
2. {
3.  int[] myArray = {1 , 2 , 3 , 4} ;
4.  for(int x = 0 ; x < myArray.length ; x++) {
5.   System.out.println(myArray[x]) ;
6.  }
7. }

  將光標移到第4行的for(int x = 0 ; x < myArray.length ; x++) 中間:Ctrl+Shift+R->Introduce Foreach調出循環重構對話框:

           
                  圖 22 循環重構對話框

  在Loop variable name中為數組循環臨時變量指定一個變量名,這里我們設置為item,按OK完成重構,JBuilder生成JDK 5.0風格循環代碼,如下所示:

  代碼清單 12 JDK 5.0樣式循環

1. public static void arrayLoopRefactoring()
2. {
3.  int[] myArray = {1 , 2 , 3 , 4} ;
4.  for(int item : myArray) {
5.   System.out.println(item) ;
6.  }
7. }
   
 


  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調出泛型重構對話框:

           
                   圖 23 泛型重構對話框

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

  代碼清單 泛型的代碼

1. public static void genericsArrayList()
2. {
3.  List list = 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)才對???是的,只需要你調用前一小節的自動裝/拆箱重構就可以完成這

感謝各位的閱讀!關于“JBuilder2005實現重構之升級到JDK5.0的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女