黑马程序员技术交流社区

标题: 泛型的学习总结 [打印本页]

作者: bin2015    时间: 2015-5-30 18:02
标题: 泛型的学习总结
本帖最后由 bin2015 于 2015-5-30 18:04 编辑

泛型: 泛型是jdk1.5出现的新特性。

泛型的好处:
         1. 可以把运行时出现的问题提前至编译时。
         2. 避免了无谓的强制类型转换。

判断一下那种写法是正确的:
         ArrayList<String>  list = new ArrayList<String>();  true
         ArrayList<Object>  list = new ArrayList<String>();  false
         ArrayList<String>  list = new ArrayList<Object>();  false
         
        为了新老系统的兼用性
         ArrayList   list = new ArrayList<String>();  true
         ArrayList<String>  list = new ArrayList();                        true
         

使用泛型要注意的事项:
         1. 泛型中没有多态的概念,左右两边的数据类型必须要一致,或者是只写一边的泛型。
推荐使用: 两边都写上同样数据类型的泛型。

自定义泛型:自定义泛型可以理解为是一个数据类型的变量或者是一个数据类型的占位符。
函数自定义泛型的格式:
      
        修饰符  <声明自定义泛型>        返回值类型   函数名(形参列表 ...){
        }
函数自定义泛型要注意的细节:
        1. 函数上自定义泛型的具体数据类型是在调用该函数的时候,传递实参数据的时候确定具体的数据类型 的。
        2. 自定义泛型使用的标识符可以自定义的,只要符合标识符的命名规则即可。但是一般自定义泛型使用的标识符都是单个字母而已。
        
泛型中是不能使用基本数据类型数据的,如果需要使用基本数据类型数据,那么就要使用基本数据类型对应 的包装类型
      
        int -----> Integer
        float---->Float
        double --- Double
        char -----> Character
        boolean ---- Boolean
        byte-----Byte
        short ---Short
        long ----- Long

自定义泛型类:
自定义泛型类的格式:

         class 类名<自定义的泛型>{
         }
泛型接口:
泛型接口的定义格式:
         interface 接口名<声明自定义的泛型>{
         }

泛型接口要注意的细节:
         1. 接口上自定义泛型的具体数据类型是在实现该接口的时候确定 的。
         2. 如果一个接口已经自定义了泛型,在实现该接口的时候没有指定自定义泛型的具体数据类型,那么默认为Object类型。
泛型类要注意的事项:
         1. 类上声明的自定义泛型的具体数据类型是在使用该类创建对象 的时候确定的。
         2. 如果一个类已经声明了自定义泛型,该类在创建对象的时候没有指定自定义泛型的具体数据类型,那么默认则为Object类型。
         3. 静态的方法不能使用类上声明的自定义泛型,如果需要使用自定义泛型只能在自己方法上声明。
泛型的通配符:
        ? super Integer  泛型的下限   只能用于Integer或者是Integer的父类类型数据
        ? extends Number  泛型的上限  只能用于Number或者是Number的子类类型数据。

作者: 流水0215    时间: 2015-5-30 19:24
不错,支持一下
作者: !85684009ex    时间: 2015-5-30 21:30
膜拜大神!谢谢大家!
作者: mnxnm    时间: 2015-6-1 21:33
今天刚好看到这个知识点,总结的好啊
作者: wwb1105    时间: 2015-6-1 21:42
不错  学习了
作者: 程明佳    时间: 2015-6-2 08:34
赞一个~\(≧▽≦)/~
作者: 那些年ii    时间: 2015-6-2 08:46
好样滴

作者: 星辉祝愿    时间: 2015-6-2 10:25
来学习了
作者: wuyusi    时间: 2015-6-2 10:30
楼主辛苦
作者: wangaz    时间: 2015-6-2 13:49
总结的很好,谢谢!
作者: 追忆似水年华    时间: 2015-6-2 15:30
学习,顶一个。

作者: 嘉Ming    时间: 2015-6-2 15:40
学习了,谢谢
作者: David19910809    时间: 2015-6-2 16:20
支持下楼主。。。。
作者: 探索者    时间: 2015-6-2 16:44
看看,收藏了
作者: 小车车    时间: 2015-6-2 21:15
学习一下,刚好还要复习。。
作者: 宋小奇    时间: 2015-6-2 21:32
学习了!!赞一个
作者: 东邪    时间: 2015-6-2 21:44
很全面,不过感觉还是要自己多练习,才能真正理解。
作者: 银哥    时间: 2015-6-2 22:04
学习一下




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2