介召JDK5中的泛型.pdf

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
介召JDK5中的泛型

介召JDK5 中的泛型    开始之前    关于本教程  JDK 5.0 (也叫做 Java 5.0 或者 Tiger )给 Java 语言带来了一些较大的变化。其中最重要的变化就是引入了泛型  ——  支持定义带有抽象类型参数的类,这些参数由您在实例化时指定。泛型为提高大型程序的类型安全和可维护性带来 了很大的潜力。   泛型与 JDK 5.0  中其他几个新的语言特性相互协作,包括增强的 for 循环(有时叫做 foreach 或者 for/in 循环)、 枚举(enumeration )和自动装箱(autoboxing )。  本教程解释了在 Java 语言中引入泛型的动机,详细介绍了泛型的语法和语义,并讲述了如何在自己的类中使用泛 型。  本教程针对中高级 Java  开发人员,他们想要了解针对泛型的新语言支持是如何工作的。本教程假定读者熟悉在  Java 语言中开发接口和类,并且具有基本的面向对象设计技能。  泛型语言特性只在 JDK 5.0 及以后版本中可用。如果您是基于较早的 JDK 版本开发软件,那么在迁移到 JDK 5.0 或 以后版本之前,将无法在代码中使用泛型特性。  先决条件  为了使用泛型,必须具有一个  JDK  5.0  开发环境。可以从  Sun  公司的  Web  站点免费  下载  JDK  5.0  (/j2se/1.5.0/index.jsp)。   关于作者  Brian Goetz  是 developerWorks Java 专区的定期专栏作家,在过去的  18 年中,他一直是一名专业软件开发人员和 管理人员。他现在是 Quiotix  公司的首席顾问,这是位于  Los Altos, CA  的一家软件开发和咨询公司。在流行的业界 出版物中查阅  Brian  的  已经发表和即将发表的文章。可通过  brian@  与  Brian 联系        泛型简介  什么是泛型?  泛型(Generic type 或者 generics )是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。 可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位 符一样。   可以在集合框架(Collection framework )中看到泛型的动机。例如,Map 类允许您向一个  Map 添加任意类的对象, 即使最常见的情况是在给定映射(map)中保存某个特定类型(比如 String )的对象。  因为  Map.get() 被定义为返回 Object,所以一般必须将  Map.get()  的结果强制类型转换为期望的类型,如下面的代 码所示:    Map m = new HashMap();  m.put(key, blarg);  String s = (String) m.get(key);    要让程序通过编译,必须将 get()  的结果强制类型转换为 String,并且希望结果真的是一个 String 。但是有可能某 人已经在该映射中保存了不是 String  的东西,这样的话,上面的代码将会抛出 ClassCastException 。   理想情况下,您可能会得出这样一个观点,即  m  是一个  Map,它将 String 键映射到 String 值。这可以让您消除 代码中的强制类型转换,同时获得一个附加的类型检查层,该检查层可以防止有人将错误类型的键或值保存在集合 中。这就是泛型所做的工作。  泛型的好处  Java 语言中引入泛型是一个较大的功能增强。不仅语言、类型系统和编译器有了较大的变化,以支持泛型,而且类 库也进行了大翻修,所以许多重要的类,比如集合框架,都已经成为泛型化的了。这带来了很多好处:  类型安全。 泛型的主要目标是提高 Java 程序的类型安全。通过知道使用泛型定义的变量的类型限制,编译器可以 在一个高得多的程度上验证类型假设。没有泛型,这些假设就只存在于程序员的头脑中(或者如果幸运的话,还存 在于代码注释中)。  Java 程序中的一种流行技术是定义这样的集合,即它的元素或键是公共类型的,比如“String  列表”或者“String  到  String  的映射” 。通过在变量声明中捕获这一附加的类型信息,泛型允许编译器实施这些附加的类型约束。类型错误 现在就可以在编译时被捕获了,而不是在运行时当作 ClassCastException 展示出来。将类型检查从运行时挪到编译 时有助于您

文档评论(0)

ldj215323 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档