`

java的泛型

    博客分类:
  • java
阅读更多
java泛型简介
1、泛型中数组和集合 java中数组是协边的,而集合不是,这样集合就缺少了一定的灵活性,可以通过在集合中使用通配符来提供一定的灵活性,通配符可以是类型参数的子类或父类
2、类型界限(边界)
1)可以为擦除提供补偿。可以解决泛型方法中调用方法的问题语法如下:public static 
2)协变
对泛型类可以持有的类型边界进行限制,例如List<? extends Fruit> fList,那么 fList中所有带参数的泛型方法都无效,因为方法的参数类型为? extends Fruit代表任何事物,所以编译器无法验证任何事物的类型安全性
3) 逆变
超类型通配符<? super MyClass>,可以安全第传递一个类型对象到泛型类型中。放松了在可以向方法传递的参数上所作的限制。
3、类型擦除
擦除到类型的第一个边界,默认情况是Object
4、泛型的限制
1)基本类型不能用作类型参数
2)instanceof检测
3)static方法和域都不能引用类型变量
4)泛型类型的实例化
5)泛型数组对象
6)参数化类型数组
5、函数对象
6、原生类型Holder与Holder<?>区别
它们大致是相同的,都可以持有任意类型,但是在向它们赋任意类型时,前者会提示警告,而后者会报错误,不让赋值。原因是Holder<?>可以持有具有某种具体类型的同构集合,而不能只是向其中传递object
7、捕获转换
如果向一个使用了<?>的方法传递原生类型,那么对于编译器来说,可能会推断出实际的类型参数,使得这个方法可以回转并调用另一个使用这个确切类型的方法。
8、泛型问题汇总
1)任何基本类型都不能作为类型参数,可以使用基本类型对应的包装器类型,自动包装机制不能应用于数组。但如果性能成为问题,需要使用专门适配基本类型的容器版本。例如:org.apache.commons.collections.primitives。
2)实现参数化接口
一个类不能实现同一个泛型接口的两种变体,因为擦除原因,这两个变体会编程相同的接口
3)转型和警告
4)重载
5)自限定的类型:class SelfBounded<T extends SelfBounded<T>>{}
6)动态类型安全:Collections的静态方法checkedCollection()、checkedList()、checkedMap()、checkedSet()、checkedSortedSet()、checkedSortedMap()。
分享到:
评论

相关推荐

    Java泛型编程指南.pdf

    Java泛型编程指南.pdf 此文章译自SUN的泛型编程指南

    Java泛型和集合

    Java Generics and Collections 英文版,详细描述java 泛型技术

    java 泛型类的类型识别示例

    java 泛型类的类型识别示例 java 泛型类的类型识别示例 java 泛型类的类型识别示例

    java 泛型接口示例

    java 泛型接口示例 java 泛型接口示例 java 泛型接口示例

    Java泛型的用法及T.class的获取过程解析

    主要介绍了Java泛型的用法及T.class的获取过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    java 泛型方法使用示例

    java 泛型方法使用示例 java 泛型方法使用示例 java 泛型方法使用示例

    JAVA泛型加减乘除

    这是一个使用JAVA实现的泛型编程,分为两部分,第一部分创建泛型类,并实例化泛型对象,得出相加结果。 第二部分用户自行输入0--4,选择要进行的加减乘除运算或退出,再输入要进行运算的两个数,并返回运算结果及...

    java泛型技术之发展

    java泛型技术之发展,学习JAVA 泛型的不错东东

    1.java泛型定义.zip

    1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1....

    很好的Java泛型的总结

    很好的Java泛型的总结,看完之后你一定会知道java泛型的底层机制,你一定会学会Java泛型!

    4.java泛型的限制.zip

    4.java泛型的限制.zip4.java泛型的限制.zip4.java泛型的限制.zip4.java泛型的限制.zip4.java泛型的限制.zip4.java泛型的限制.zip4.java泛型的限制.zip4.java泛型的限制.zip4.java泛型的限制.zip4.java泛型的限制.zip...

    java泛型学习ppt

    java,学习java泛型,java培训之泛型.pptxjava培训之泛型.pptxjava培训之泛型.pptxjava培训之泛型.pptx

    java泛型总结

    深入理解java泛型,包括类名泛型的定义,方法泛型定义,泛型的返回

    SUN公司Java泛型编程文档

    Sun公司的Java泛型编程文档,英文原版和网络翻译版,想对泛型有更清楚的认识的朋友可以看看,必定会有所帮助

    java泛型详解.pdf

    java泛型详解.pdf

    JAVA泛型简单排序实例

    JAVA泛型源代码实现以下功能:返回数组元素的最大值/最小值下标;判断数组元素是否按升序排列;T对象数组排序;二分法查找key元素;

    思维导图之Java泛型详解

    思维导图之Java泛型详解

    Java泛型技术之发展

    Java泛型技术之发展

    JAVA泛型教程(帮你解决学习泛型的苦恼)

    JAVA泛型教程(帮你解决学习泛型的苦恼). Java 泛型编程可能会碰到很多问题,本教程可能会对你有帮助哦。

Global site tag (gtag.js) - Google Analytics