探索JDK1.5高级编码特征

ZDNet软件频道 时间:2004-03-01 作者:Builder.com |  我要评论()
本文关键词:javatips
Sun将计划发布一个JAVA编程语言的重大修改版。该版本代号取名为“Tiger”,让我们来看看这个激动人心的改版。
本文译自Builder.com,未经许可请勿转载

今年夏天,Sun将计划发布一个JAVA编程语言的重大修改版。该版本代号取名为“Tiger”,然而,很快将会有JDK1.5的官方名称。


该版本的Java语言将合并Java规格提案(Java Specification Requests,JSR)14与15 (JSR-14, JSR-175)。它还将在运行时性能(runtime performance)、可扩缩性(scalability)、易管理性(manageability)和监控(monitoring)方面有较大加强。
 

本文中,我们将讨论几个在JDK1.5中新的语言特征,包括:

  • 泛型(Generics--为集合(collections)提供编译时类型安全,无需每刻从Collections取得一个对象就进行强制转换(cast)
  • 增强的“for”循环(Enhanced For loop--减少迭代器(iterator)的潜在错误(error-proneness)
  • 自动置入/自动取出(Autoboxing/unboxing--无需在基本类型(primitive types)(例如double)和包装类型(wrapper types)(例如Double)之间人工地进行转换。
  • 类型安全的枚举(Typesafeenums--提供类型安全枚举模式的各项好处。
  • 静态导入(Static import--无需在使用其他类的静态成员变量前缀其类名.这将使得代码更为简洁。
  • 元数据(Metadata--使编程人员避免编写样板化代码(boiler plate code),并提供机会进行宣告式程式设计(declarative programming)。

让我们详细讨论每个新特性,并看一些例子。

泛型(Generics)

泛型是JDK1.5中一个最“酷”的特征。通过引入泛型,我们将获得编译时类型的安全和运行时更小地抛出ClassCastExceptions的可能。在JDK1.5中,你可以声明一个集合将接收/返回的对象的类型。在JDK1.4中,创建雇员名字的清单(List)需要一个集合对象,像下面的语句:

List listOfEmployeeName = new ArrayList(); 

在JDK1.5中,你将使用下面语句

List<String> listOfEmployeeName = new ArrayList<String>();

最“酷”的是,如果你试图插入非string类型的值,你将在编译时发现并且修正这类问题。没有泛型,你会发现这样一个bug,当你的客户调用后会告诉你,你所编写的程序抛出ClassCastException异常而崩溃。

另外,当你从集合中得到一个元素时你无需进行强制转换。故原先为:

String employeeName = ((String) listOfEmployee.get(i));

而下面的语句将比上面的更加简单:

String employeeName = listOfEmployee.get(i);


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134