泛型
一:泛型问题引出
泛型解决类型的转换问题 , object类虽然可以接受所有的类型 , 但是向下转型并不安全 , object往往由于接受数据 , 却不合适取出数据 。 所以出现了可以接受所有数据类型的泛型 , 用来结束所有的类型 。
二:泛型实现
泛型在类定义或者接口定义的时候使用,程序编译的时候完全不知道这个是什么类型,泛型所具体的实现数据类型由使用者在写程序的时候决定(T写成想要的数据类型)。
<T>是一个占位(泛型声明)的标记
三:通配符(重点)
在程序类中追加了泛型避免了类转换的错误 , 但是泛型的不同数据类型实现在使用时也会因为泛型数据类设置而显得繁琐错误。
通配符解决了泛型不同具体实现的数据类型的不匹配问题<?> ?就是通配符,接受了所有的数据类型 。
在通配符在使用时,可以无问题按照当前的数据类型实现取出,却不可以修改。
“?”有两个子通配符:(了解不作要求)
?extends类 。设置泛型上限?extends Float
?super类 。 设置泛型下限?super Stringeclipse的一个快捷键 。 CTRL + 1自动声明一个局部变量。
四:泛型接口
泛型不止出现在类中也可以定义接口两种实现泛型接口的方法:
在子类定义的时候继续使用泛型
在子类使用接口的时候明确使用数据类型
五:泛型方法
在类和接口的泛型定义后,在其内部也可以继续使用泛型。该方法称之为是泛型方法。
泛型方法不一定定义和接口中,单独定义泛型方法也可(加一个泛型声明(<T>)即可)
不建议使用泛型方法