您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)JBuilder2005實(shí)現(xiàn)重構(gòu)之升級(jí)到JDK5.0的示例分析的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。
想把Jbuilder X 下的jdk換成 1.6 ,結(jié)果出現(xiàn)錯(cuò)誤,不支持如下的寫法
ArrayList
在網(wǎng)上一查,結(jié)果發(fā)現(xiàn)要修給 Project->Project Properties...->Build->在Java設(shè)置頁(yè),將Target VM設(shè)置 Java 2 SDK,v 5.0 and later。
但是我的Jbuilder X 里面沒有這一選項(xiàng)設(shè)置,Jbuilder 下升級(jí)jdk 沒有成功
現(xiàn)將JBuilder2005實(shí)現(xiàn)重構(gòu)之升級(jí)到JDK5.0- - 轉(zhuǎn)載到此
JDK 5.0在語法上做許多重大的改進(jìn),雖然在低版本JDK中開發(fā)的源代碼幾乎可以不做任何修改就可直接運(yùn)行于JDK 5.0中。但還是有必須進(jìn)行版本升級(jí)的重構(gòu),這樣就可以應(yīng)用JDK 5.0的for和while循環(huán)、自動(dòng)裝/拆箱、泛型等改進(jìn)功能,在使代碼更加緊湊的同時(shí),使代碼性能得到優(yōu)化。所以JBuilder專門為低版本提升到JDK 5.0的程序提供了3個(gè)重構(gòu)功能,方便你無縫地實(shí)現(xiàn)升級(jí)。
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è)置我們不作過多的描述,簡(jiǎn)而言之,它主要包括以下的步驟:
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è)置頁(yè),將JDK設(shè)置為JDK 5.0。
4) Project->Project Properties...->Build->在Java設(shè)置頁(yè),將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對(duì)應(yīng)的循環(huán)代碼轉(zhuǎn)換這JDK5.0循環(huán)風(fēng)格的重構(gòu)方法,我們通過一個(gè)數(shù)組遍歷的重構(gòu)對(duì)此做說明,請(qǐng)看下面的低版本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)對(duì)話框:
圖 22 循環(huán)重構(gòu)對(duì)話框
在Loop variable name中為數(shù)組循環(huán)臨時(shí)變量指定一個(gè)變量名,這里我們?cè)O(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、自動(dòng)裝/拆箱
每個(gè)基本數(shù)據(jù)類型如double、int都有對(duì)應(yīng)的封裝類Double、Integer,在低版本的JDK中,需要一些無聊的代碼完成基本數(shù)據(jù)類型到對(duì)應(yīng)封裝類的轉(zhuǎn)換。JDK 5.0的自動(dòng)裝/拆箱特性可以自動(dòng)完成這種轉(zhuǎn)換,使代碼更加簡(jiǎn)潔,來看下面未用自動(dòng)裝/拆箱的代碼:
代碼清單 13 未使用自動(dòng)裝/拆箱的代碼
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()方法需要一個(gè)Integer的入?yún)?,autoBoxingRefactoring()在第12行老老實(shí)實(shí)滿足了這種要求。JBuilder提供了一個(gè)非常方便進(jìn)行自動(dòng)裝/拆箱重構(gòu)的方法,打開需要做此重構(gòu)的類,在編輯器的任何地方:Ctrl+Shift+R->Introduce Auto(un)boxing,JBuilder搜索當(dāng)前Class文件需要自動(dòng)裝/拆箱的地方,一并重構(gòu)。如上面的代碼段進(jìn)行自動(dòng)裝/拆箱重構(gòu)后,將調(diào)用為:
代碼清單 14 自動(dòng)裝/拆箱重構(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)泛型
在低版本中,集合中的對(duì)象在使用前需要進(jìn)行顯示的類型轉(zhuǎn)換,如String s = (String)iter.next(),JDK 5.0引入了泛型的概念,加入了編譯期類型安全檢查,取消了強(qiáng)制類型轉(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)對(duì)話框:
圖 23 泛型重構(gòu)對(duì)話框
在Type Argument中指定一個(gè)數(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行代碼的變化。也許有人會(huì)指出第4行應(yīng)該調(diào)整為list.add(23)才對(duì)啊?是的,只需要你調(diào)用前一小節(jié)的自動(dòng)裝/拆箱重構(gòu)就可以完成這
感謝各位的閱讀!關(guān)于“JBuilder2005實(shí)現(xiàn)重構(gòu)之升級(jí)到JDK5.0的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。