這篇文章給大家分享的是有關(guān)JBuilder2005實現(xiàn)重構(gòu)之升級到JDK5.0的示例分析的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
成都創(chuàng)新互聯(lián)公司網(wǎng)站設(shè)計,為客戶量身定制各類網(wǎng)站建設(shè)業(yè)務(wù),包括企業(yè)型、電子商務(wù)型、響應(yīng)式網(wǎng)站建設(shè)、行業(yè)門戶型等各類網(wǎng)站,實戰(zhàn)經(jīng)驗豐富,成功案例眾多。以客戶利益為出發(fā)點,成都創(chuàng)新互聯(lián)公司網(wǎng)站制作為客戶規(guī)劃、專業(yè)公司符合企業(yè)需求、帶有營銷價值的網(wǎng)絡(luò)建站方案認(rèn)真對待每一個客戶,我們不用口頭的語言來吹擂我們的優(yōu)秀,超過千家的成功案例見證著我們的成長。想把Jbuilder X 下的jdk換成 1.6 ,結(jié)果出現(xiàn)錯誤,不支持如下的寫法
ArrayList
在網(wǎng)上一查,結(jié)果發(fā)現(xiàn)要修給 Project->Project Properties...->Build->在Java設(shè)置頁,將Target VM設(shè)置 Java 2 SDK,v 5.0 and later。
但是我的Jbuilder X 里面沒有這一選項設(shè)置,Jbuilder 下升級jdk 沒有成功
現(xiàn)將JBuilder2005實現(xiàn)重構(gòu)之升級到JDK5.0- - 轉(zhuǎn)載到此
JDK 5.0在語法上做許多重大的改進(jìn),雖然在低版本JDK中開發(fā)的源代碼幾乎可以不做任何修改就可直接運行于JDK 5.0中。但還是有必須進(jìn)行版本升級的重構(gòu),這樣就可以應(yīng)用JDK 5.0的for和while循環(huán)、自動裝/拆箱、泛型等改進(jìn)功能,在使代碼更加緊湊的同時,使代碼性能得到優(yōu)化。所以JBuilder專門為低版本提升到JDK 5.0的程序提供了3個重構(gòu)功能,方便你無縫地實現(xiàn)升級。
1、使工程基于JDK 5.0
雖說JBuilder 2005支持JDK 5.0,但其默認(rèn)的JDK版本是1.4.2,要使工程的JDK版本為5.0,你必須安裝JDK 5.0,并在JBuilder下 進(jìn)行相應(yīng)的設(shè)置。關(guān)于JDK 5.0的詳細(xì)設(shè)置我們不作過多的描述,簡而言之,它主要包括以下的步驟:
1) 安裝JDK 5.0(從http://java.sun.com/j2se/1.5.0/download.jsp下載)。
2) Tools->Configure->JDKs...通用指定JDK5.0的安裝路徑設(shè)置JDK。
3) Project->Project Properties...->在Paths設(shè)置頁,將JDK設(shè)置為JDK 5.0。
4) Project->Project Properties...->Build->在Java設(shè)置頁,將Language features:設(shè)置為Java 2 SDK,V 5.0(generics enabled),將Target VM設(shè)置為Java 2 SDK,v 5.0 and later。
只有將工程的JDK版本設(shè)置為JDK 5.0,才可以進(jìn)行有關(guān)JDK 5.0的代碼重構(gòu)。
2、優(yōu)化循環(huán)
JDK 5.0引入了更高效的循環(huán),稱之為JDK 5.0樣式的循環(huán),包括:
.數(shù)組遍歷
.List遍歷
.Iterator的for循環(huán)
.Iterator的while循環(huán)
JBuilder提供了將低版本JDK對應(yīng)的循環(huán)代碼轉(zhuǎn)換這JDK5.0循環(huán)風(fēng)格的重構(gòu)方法,我們通過一個數(shù)組遍歷的重構(gòu)對此做說明,請看下面的低版本JDK循環(huán)代碼:
代碼清單 11 低版本循環(huán)樣式
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. }
將光標(biāo)移到第4行的for(int x = 0 ; x < myArray.length ; x++) 中間:Ctrl+Shift+R->Introduce Foreach調(diào)出循環(huán)重構(gòu)對話框:
圖 22 循環(huán)重構(gòu)對話框
在Loop variable name中為數(shù)組循環(huán)臨時變量指定一個變量名,這里我們設(shè)置為item,按OK完成重構(gòu),JBuilder生成JDK 5.0風(fēng)格循環(huán)代碼,如下所示:
代碼清單 12 JDK 5.0樣式循環(huán)
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、自動裝/拆箱
每個基本數(shù)據(jù)類型如double、int都有對應(yīng)的封裝類Double、Integer,在低版本的JDK中,需要一些無聊的代碼完成基本數(shù)據(jù)類型到對應(yīng)封裝類的轉(zhuǎn)換。JDK 5.0的自動裝/拆箱特性可以自動完成這種轉(zhuǎn)換,使代碼更加簡潔,來看下面未用自動裝/拆箱的代碼:
代碼清單 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的入?yún)?,autoBoxingRefactoring()在第12行老老實實滿足了這種要求。JBuilder提供了一個非常方便進(jìn)行自動裝/拆箱重構(gòu)的方法,打開需要做此重構(gòu)的類,在編輯器的任何地方:Ctrl+Shift+R->Introduce Auto(un)boxing,JBuilder搜索當(dāng)前Class文件需要自動裝/拆箱的地方,一并重構(gòu)。如上面的代碼段進(jìn)行自動裝/拆箱重構(gòu)后,將調(diào)用為:
代碼清單 14 自動裝/拆箱重構(gòu)后的代碼
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、非泛型轉(zhuǎn)泛型
在低版本中,集合中的對象在使用前需要進(jìn)行顯示的類型轉(zhuǎn)換,如String s = (String)iter.next(),JDK 5.0引入了泛型的概念,加入了編譯期類型安全檢查,取消了強制類型轉(zhuǎn)換,節(jié)省了代碼,下面是大家熟悉的傳統(tǒng)的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. }
將光標(biāo)移到第3行(即集合定義的代碼行):Ctrl+Shift+R->Introduce Generics調(diào)出泛型重構(gòu)對話框:
圖 23 泛型重構(gòu)對話框
在Type Argument中指定一個數(shù)據(jù)類型,JBuilder已經(jīng)通過分析代碼默認(rèn)了最適合的數(shù)據(jù)類型,一般情況下無需調(diào)整。按OK后完成泛型的代碼重構(gòu):
代碼清單 泛型的代碼
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行應(yīng)該調(diào)整為list.add(23)才對啊?是的,只需要你調(diào)用前一小節(jié)的自動裝/拆箱重構(gòu)就可以完成這
感謝各位的閱讀!關(guān)于“JBuilder2005實現(xiàn)重構(gòu)之升級到JDK5.0的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!