2019-10-09泛型

泛型

好处:
1.可以将运行时出现的问题提前到编译时(限制添加元素的类型)
2.避免了无谓的强制转换
泛型的应用
1. ArrayList<String> list = new ArrayList<String>(); true
2. ArrayList<Object> list = new ArrayList<String>(); false
3. ArrayList<String> list = new ArrayList<Object>(); false
4. ArrayList list = new ArrayList<String>(); true
5. ArrayList<String> list = new ArrayList(); true
//2和3错误原因:在泛型中没有多态的概念,两边的泛型数据必须一致
//4和5正确原因:考虑到新老系统的兼容性的

自定义泛型:

可以理解为一个数据类型的占位符,或则理解为时一个数据类型的变量

泛型方法:

泛型方法的定义格式:
    修饰符 <声明自定义泛型> 返回值类型 函数名 (形参列表。。)
    public <ABC> ABC add(ABC arg0){}
泛型方法的注意事项:
1.在方法上的自定义泛型的具体数据类型时调用该方法的时候传入实参的时候确定的
2.自定义泛型使用的标识符只要符合标识符的命名规则即可
TIM图片20191009214645.png

TIM图片20191009214848.jpg

泛型类:

泛型类的定义格式:
    class 类名<声明自定义泛型>{}
    class MyList<T>{}
  泛型类的注意事项:
1. 在类上自定义泛型的数据类型时在创建类的对象的时候确定的
2. 在类上自定义了泛型,如果创建该类的对象时没有指定泛型的具体类型,则默认是Object类型

泛型接口:

泛型接口的定义格式:
     interface 接口名<声明自定义泛型>
     public Demo<String> interface Dao<String>{}
泛型接口的注意事项:
  1.在接口上自定义泛型的具体数据类型时在实现该接口时指定的
  2.如果一个接口自定义了泛型,在实现该接口时没有指定具体数据类型,则默认是Object类型
如果想在创建接口实现类对象的时候再指定接口自定义泛型的具体类型,那么应该类和接口都使用自定义泛型
    public Demo<T> interface Dao<T>{}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  •   在Effective中讲到泛型之处提到了一个概念,类型擦除器,这是什么呢?接下来我们跟随这篇文章探索类型擦除的...
    凌云_00阅读 6,435评论 0 8
  • 泛型 泛型(Generic Type)简介 通常情况的类和函数,我们只需要使用具体的类型即可:要么是基本类型,要么...
    Tenderness4阅读 5,257评论 4 2
  • 在之前的文章中分析过了多态,可以知道多态本身是一种泛化机制,它通过基类或者接口来设计,使程序拥有一定的灵活性,但是...
    _小二_阅读 3,926评论 0 0
  • 我们知道,使用变量之前要定义,定义一个变量时必须要指明它的数据类型,什么样的数据类型赋给什么样的值。 假如我们现在...
    今晚打肉山阅读 4,589评论 0 1
  • 公元2016年7月,炎炎夏日,思虑再三且加之阿King的决定一在前,是以遵循打不过便加入的原则,小帅毅然决然...
    cpw3阅读 1,027评论 0 1