下载此文档

java泛型简单总结.doc


文档分类:IT计算机 | 页数:约49页 举报非法文档有奖
1/49
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/49 下载此文档
文档列表 文档介绍
java 泛型简单总结 java 泛型方法 java 泛型详解 java 泛型能放 int吗 java 泛型参数转换失败篇一: Java 泛型总结 Java 泛型总结 1. 什么是泛型? 泛型( Generic type 或者 generics ) 是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指定的类型的一个占位符, 就像方法的形式参数是运行时传递的值的占位符一样。可以在集合框架( Collection framework ) 中看到泛型的动机。例如, Map 类允许您向一个 Map 添加任意类的对象, 即使最常见的情况是在给定映射( map ) 中保存某个特定类型(比如 String )的对象。因为 () 被定义为返回 Object ,所以一般必须将 () 的结果强制类型转换为期望的类型,如下面的代码所示: Map m= new HashMap(); ("key", "blarg"); String s= (String) ("key"); 要让程序通过编译,必须将 get() 的结果强制类型转换为 String , 并且希望结果真的是一个 String 。但是有可能某人已经在该映射中保存了不是 String 的东西, 这样的话, 上面的代码将会抛出 ClassCastException 。理想情况下,您可能会得出这样一个观点,即 m 是一个 Map ,它将 String 键映射到 String 值。这可以让您消除代码中的强制类型转换,同时获得一个附加的类型检查层,该检查层可以防止有人将错误类型的键或值保存在集合中。这就是泛型所做的工作。 2. 泛型的好处 Java 语言中引入泛型是一个较大的功能增强。不仅语言、类型系统和编译器有了较大的变化, 以支持泛型, 而且类库也进行了大翻修, 所以许多重要的类, 比如集合框架, 都已经成为泛型化的了。这带来了很多好处: 类型安全。泛型的主要目标是提高 Java 程序的类型安全。通过知道使用泛型定义的变量的类型限制, 编译器可以在一个高得多的程度上验证类型假设。没有泛型, 这些假设就只存在于程序员的头脑中( 或者如果幸运的话, 还存在于代码注释中)。 Java 程序中的一种流行技术是定义这样的集合, 即它的元素或键是公共类型的, 比如“ String 列表”或者“ String 到 String 的映射”。通过在变量声明中捕获这一附加的类型信息, 泛型允许编译器实施这些附加的类型约束。类型错误现在就可以在编译时被捕获了, 而不是在运行时当作 ClassCastException 展示出来。将类型检查从运行时挪到编译时有助于您更容易找到错误,并可提高程序的可靠性。消除强制类型转换。泛型的一个附带好处是,消除源代码中的许多强制类型转换。这使得代码更加可读, 并且减少了出错机会。尽管减少强制类型转换可以降低使用泛型类的代码的罗嗦程度, 但是声明泛型变量会带来相应的罗嗦。比较下面两个代码例子。该代码不使用泛型: List li= new ArrayList(); (new Integer(3)); Integer i= (Integer) (0); 该代码使用泛型: List<Integer> li= new ArrayList<Integer>(); (new Integer(3)); Integer i= (0); 在简单的程序中使用一次泛型变量不会降低罗嗦程度。但是对于多次使用泛型变量的大型程序来说, 则可以累积起来降低罗嗦程度。潜在的性能收益。泛型为较大的优化带来可能。在泛型的初始实现中, 编译器将强制类型转换( 没有泛型的话, 程序员会指定这些强制类型转换) 插入生成的字节码中。但是更多类型信息可用于编译器这一事实, 为未来版本的 JVM 的优化带来可能。由于泛型的实现方式, 支持泛型( 几乎) 不需要 JVM 或类文件更改。所有工作都在编译器中完成, 编译器生成类似于没有泛型( 和强制类型转换) 时所写的代码, 只是更能确保类型安全而已。 3. 泛型用法的例子泛型的许多最佳例子都来自集合框架, 因为泛型让您在保存在集合中的元素上指定类型约束。考虑这个使用 Map 类的例子, 其中涉及一定程度的优化,即 () 返回的结果将确实是一个 String : Map m= new HashMap(); ("key", "blarg"); String s= (String)

java泛型简单总结 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数49
  • 收藏数0 收藏
  • 顶次数0
  • 上传人raojun00001
  • 文件大小99 KB
  • 时间2017-04-22