1 / 30
文档名称:

java泛型简单总结.doc

格式:doc   大小:51KB   页数:30页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

java泛型简单总结.doc

上传人:jiqingyong345 2016/8/15 文件大小:51 KB

下载得到文件列表

java泛型简单总结.doc

相关文档

文档介绍

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