我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

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

这篇文章给大家分享的是有关JBuilder2005实现重构之升级到JDK5.0的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。想把Jbuilder X 下的jdk換成 1.6 ,結果出現錯誤,不支持如下
2023-06-03

Java数据结构之实现哈夫曼树的示例分析

这篇文章主要介绍了Java数据结构之实现哈夫曼树的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、与哈夫曼树相关的概念概念含义1. 路径从树中一个结点到另一个结点的
2023-06-15

Java集合类之组织结构和继承、实现关系的示例分析

这篇文章主要为大家展示了“Java集合类之组织结构和继承、实现关系的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java集合类之组织结构和继承、实现关系的示例分析”这篇文章吧。Coll
2023-05-30

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录