码迷,mamicode.com
首页 > 编程语言 > 详细

java泛型

时间:2017-07-28 22:12:24      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:ring   推荐   jdk   ges   技术   span   十分   image   log   

这里对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泛型

标签:ring   推荐   jdk   ges   技术   span   十分   image   log   

原文地址:http://www.cnblogs.com/xiaoyugg/p/7252552.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!