泛型总结

创建集合的时候可以存入各种元素,所以会把该集合提升到object类型,当我们取出每一个对象的时候,如果强转的话就会出现数据类型异常的情况,不写集合类型的时候 集合也是object类型,所以我们创建集合的时候为了避免这个问题的出现,在建里的时候就需要明确集合的类型,这种方式我们叫做泛型。加了泛型之后我们可以运行时期的异常转换成编译错误,创建数据提前加上泛型可以避免错误。

由于我们的数据类型不确定我们可以加在类名的后面,当我们创建对象时就确定了泛型。

含有泛型的接口确定泛型有两种,1是定义接口实现类的时候明确泛型

如图

Scanner类没有泛型,但是在实现Iterator接口的时候确定泛型String。

2.如果始终不确定泛型类,我们在创建对象的时候确定泛型类型。

将运行时期的ClassCastException,转移到了编译时期变成了编译失败。避免了类型强转的麻烦。

当使用泛型类或者接口时,传递的数据中,泛型类型不确定,可以通过通配符<?>表示。但是一旦使用泛型的通配符后,只能使用Object类中的共性方法,集合中元素自身方法无法使用。

如果想要对被打印的集合中的元素类型进行限制,只在指定的一些类型,进行打印,我们就要限定泛型的上限?extends E和下限?super E,上限如果是person类的话则 ? 代表接收Person类型或者Person子类型的元素,如果下限是person的话? 代表接收E类型或者E的父类型的元素。

 

posted @ 2021-01-30 15:20  Dyl啊  阅读(125)  评论(0)    收藏  举报