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

2016-02-19 18:39 12 1 收藏

get新技能是需要付出行动的,即使看得再多也还是要动手试一试。今天图老师小编跟大家分享的是JBuilder2005实现重构之升级到JDK5.02,一起来学习了解下吧!

【 tulaoshi.com - 编程语言 】

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.  Listlist = 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)才对啊?是的,只需要你调用前一小节的自动装/拆箱重构就可以完成这样的转换了。

来源:http://www.tulaoshi.com/n/20160219/1618525.html

延伸阅读
标签: Java JAVA基础
  欢迎页面welcome.jsp 当用户录入正确的密码后,switch.jsp控制JSP页面导向welcome.jsp欢迎页面,在这节里,我们来开发这个welcome.jsp页面。因为welcome.jsp需要使用到一个第三方的标签库,所以在开发welcome.jsp之前需要在JBuilder中作一些配置引入这个标签库。 将第三方标签库配置到JBuilder中 Apache开源组...
标签: Java JAVA基础
  错误处理页面error.jsp Web应用程序一般都有一个或多个统一的错误处理JSP页面,以便在功能性的JSP页面发生错误时,能以一种友好的形式向用户反馈。友好而统一的错误页面是Web展现层一个无可忽略的方面。 下面,我们创建错误处理error.jsp文件,其代码如下所示: 代码清单 11 error.jsp错误处理JSP页面 1. <%@pa...
Web应用服务器会产生各种事件,如Web容器启动事件、session过期事件、请求到达事件等等。我们已经在《JBuilder 2005实战jsp开发》中阐述了这些事件的接口,事件处理方法使程序对Web应用服务器的控制能力大为提高。 !-- frame contents -- !-- /frame contents -- 在这一节里,我们监听Web容器启动关闭的事件,在事件发生时记录We...
标签: Java JAVA基础
  由于在login.jsp的表单中通过action属性指定switch.jsp为响应的JSP文件,当用户在login.jsp中选定登录用户,输入密码提交表单后,客户端将向服务器发送一个HTTP请求,服务器即调用switch.jsp来响应这个请求。 表单中用户名和密码两组件的数据将通过HTTP请求传给服务器的switch.jsp,服务器将这些信息封装在request对象中传给sw...
标签: Java JAVA基础
在测试用例中通过setUp()、tearDown()创建测试固件,只能使这个测试固件在单个测试用例的不同测试方法中共用,如果有多个测试用例都需要使用相同的测试固件,就需要将测试固件抽取到一个独立的类中。JBuilder提供了3个预定义的测试固件类,它们分别是: ·JDBC测试固件(JDBC Fixture):用于获取数据库连接的测试固件,用...

经验教程

180

收藏

72
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部