快速业务通道

JBuilder2005实现重构之升级到JDK5.0 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24

JBuilder2005实现重构之升级到JDK5.0

时间:2010-03-20

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调出循环重构对话框:

JBuilder2005实现重构之升级到JDK5.0 - 编程入门网

图 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. }

JBuilder2005实现重构之升级到JDK5.0(2)

时间:2010-03-20

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文件需

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号