首页 课程 师资 教程 报名

零基础学Java基础 ,java泛型的使用

  • 2020-05-06 15:01:58
  • 1906次 动力节点

    泛型的局限

    任何基本类型不能作为类型参数

    经过类型擦除后,List中包含的实际上还是Object的域,而在Java类型系统中Object和基本类型是两套体系,需要通过“自动装包、拆包机制”来进行交互。

零基础学Java基础 ,java泛型的使用

    2.任何在运行时需要知道确切类型信息的操作都无法工作。

    由于Java的泛型是编译期泛型(在进入运行时后没有泛型的概念),因此运行时的类型转换和类型判定等操作都没有效果。

零基础学Java基础 ,java泛型的使用

    3.冲突1:方法名一样,参数列表是同一个类型参数的两个泛型方法,重载将产生相同的函数签名;

零基础学Java基础 ,java泛型的使用

    在泛型擦除后,这两个方法签名完全相同,产生冲突;

    4.冲突2:使用泛型接口时,需要避免重复实现同一个接口

零基础学Java基础 ,java泛型的使用

    IDEA编辑器给出所示——“Payable不能被不同的类型参数继承,即不能重复实现同一个接口”

    5.不能在静态域或方法中引用类型参数

零基础学Java基础 ,java泛型的使用

    这个例子跟问题2基本相同,唯一是在方法的签名里多了一个static关键字,然后引发编译错误的原因就变成了:在静态域中无法引用类型变量

    泛型的常用经验

    尽量消除异常,初学者容易写出使用原生类型的代码,或者使用泛型不当的代码,现在编辑器非常先进,尽量消除提示的异常;对于开发者自己确认不需要消除切可以工作的代码,可以使用@SuppressWarnings("unchecked")屏蔽掉异常;

    能用泛型类(或接口)的时候尽量使用;能用泛型方法的时候尽量使用泛型方法;

    定义API时,尽量使用泛型;

零基础学Java基础 ,java泛型的使用

    4.编写基础工具类时,尽量使用泛型;

零基础学Java基础 ,java泛型的使用

    例子1:通用的返回值对象

    例子2:缓存操作工具类

 以上就是动力节点java培训机构的小编针对“零基础学Java基础 ,java泛型的使用”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交