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

等着天上掉老婆

等着天上掉老婆

2016-02-19 18:39

get新技能是需要付出行动的,即使看得再多也还是要动手试一试。今天图老师小编跟大家分享的是JBuilder2005实现重构之升级到JDK5.02,一起来学习了解下吧!
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)才对啊?是的,只需要你调用前一小节的自动装/拆箱重构就可以完成这样的转换了。
展开更多 50%)
分享

猜你喜欢

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

编程语言 网络编程
JBuilder2005实现重构之升级到JDK5.02

JBuilder2005实现重构之杂项重构

编程语言 网络编程
JBuilder2005实现重构之杂项重构

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

JBuilder2005实现重构

Web开发
JBuilder2005实现重构

用JBuilder 2005实现重构之认识重构

编程语言 网络编程
用JBuilder 2005实现重构之认识重构

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

JBuilder2005实现重构之类继承体系间

编程语言 网络编程
JBuilder2005实现重构之类继承体系间

JBuilder2005 Struts深度体验之升级

编程语言 网络编程
JBuilder2005 Struts深度体验之升级

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

关于java学习的一点感言

关于java学习的一点感言

蓝牙鼠标自动断开连接的解决办法

蓝牙鼠标自动断开连接的解决办法
下拉加载更多内容 ↓