千家信息网

JBuilder2005实现重构之升级到JDK5.0的示例分析

发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章给大家分享的是有关JBuilder2005实现重构之升级到JDK5.0的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。想把Jbuilder X 下的jdk換
千家信息网最后更新 2025年11月07日JBuilder2005实现重构之升级到JDK5.0的示例分析

这篇文章给大家分享的是有关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的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

代码 重构 循环 版本 类型 升级 清单 对话框 数据 对话 分析 工程 数组 方法 样式 示例 光标 内容 功能 变量 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 企业vpn服务器搭建 软件开发合同违约赔偿上限 网络技术三级职称 冒险岛服务器内只有我的角色之间可以移动 计算机网络技术及应用自考 国三计算机网络技术 mac搞软件开发 网络安全防御保护 国家国资委网络安全 山东春考计算机网络技术简答题 iptv网络安全风险 管理各种服务器的服务 软件开发的就业环境分析 软件开发开展情况汇报 2019服务器操作系统 达梦数据库错误的日期格式 计算机网络技术英文书籍 网络安全审查办法华为 软件开发秋招可以投哪些公司 做站群服务器选择 分布式文件服务器技术指标 5288v5服务器管理地址 数据库中弱三范怎么理解 分布式数据库ppt 永航汽车维修资料软件开发公司 小程序数据库添加图片与删除 台儿庄区易乐网络技术服务中心 深圳世心互联网科技怎么样 服务器升级用什么版本系统好 我的世界服务器要先做什么
0