java泛型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java泛型相关的知识,希望对你有一定的参考价值。

这里对java泛型做下小结:

  为什么会有泛型?

       在不使用泛型时,往集合中添加对象可以添加不同类型的对象,在遍历集合时往往是将集合中的元素以同一类型取出,这时集合中的不是该类型的元素就会发生运行时的类型转换错误,而使用泛型后,往集合中添加不是该类型的元素时

    在编译期就会报错,从而减少了运行时错误

    泛型在jdk1.5出现

   

  什么是泛型?

    所谓泛型其实就是一种对集合的编译期类型检查,也正是因为泛型是编译期行为,因此使用反射可以绕过泛型从而向集合中添加不同类型的元素

  

  泛型写法?

    泛型中是没有多态的概念的下面这种写法是错误的

    List<Object> list  = new ArrayList<String>();

    下面的写法是规范写法

    List<String> list  = new ArrayList<String>();

    下面两种编译可以通过,但是不推荐这样写

    List list  = new ArrayList<String>();

    List<String> list  = new ArrayList();

 

  泛型的用途?

    泛型的用途十分广泛,多用于自定义泛型接口等,自定义泛型中的标识可以理解为一个类型占位符

    泛型方法:

       技术分享

    如图,泛型方法的定义方式是在方法返回类型前面声明自定义泛型,这个方法可以实现传入什么类型的参数就返回什么类型的对象

 

    泛型类:

    技术分享

    如图,泛型类的定义是在类名后面声明自定义泛型

    技术分享

    如图,泛型类的实际类型是在创建该类的对象时指明

 

     泛型接口:

    技术分享

    如图,泛型接口的实际类型是在该接口名后面声明自定义泛型

    技术分享

    如图,泛型接口的实际类型可以在其子类实现该接口时指明

    技术分享

    技术分享

    如图,也可以实现它的子类先不指定,在实例化其子类对象时指定泛型类型

  

以上是关于java泛型的主要内容,如果未能解决你的问题,请参考以下文章

Java泛型 VS C#泛型 (伪泛型 VS 真泛型)

java中啥叫泛型??

java中啥是泛型,怎么用泛型?

Java——泛型

java泛型的一些知识点:Java泛型--泛型应用--泛型接口泛型方法泛型数组泛型嵌套

Java 泛型泛型简介 ( 泛型类 | 泛型方法 | 静态方法的泛型 | 泛型类与泛型方法完整示例 )