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();

 

  泛型的用途?

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

    泛型方法:

       

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

 

    泛型类:

    

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

    

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

 

     泛型接口:

    

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

    

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

    

    

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

  

posted @ 2017-07-28 20:55  小宇gg丶  阅读(136)  评论(0编辑  收藏  举报