JAVA之泛型

泛型的概念

通过API可以看到Collection,List,ArrayList,这几个类里面都有,这个就是泛型,里面的E可以是任何引用数据类型,使用泛型指明了数据类型之后,这个集合里面只能存储这种数据类型的对象。

不使用泛型时,要进行多次类型强制转换

使用泛型之后:

泛型的优点

可以统一集合中的数据类型,提高安全性

可以减少强制类型转换

自定义泛型

通过JDK的源码可以看到,泛型一般写的都是或者,里面的T和E就是表示使用者指定的类型。可以自己定义一个使用泛型的类

泛型通配符

在实际工作当中,有可能通过调用某个方法来接受一个返回值List的数据,这样就不太好确定返回值中的数据类型,这样可以使用泛型通配符

Listlist=newArrayList();//=号右边可能是通过调用某个方法返回的List

使用泛型通配符限定子类或者父类

? extends E

向下限定,E及其子类,可以存储当前类型的子类

? super E

向上限定,E及其父类,可以存储当前类型的父类

定义一个Student类继承Person

在List中方法addAll是限定了子类(? extends E),定义测试类:

你可能感兴趣的:(JAVA之泛型)