泛型
将类型由原来的具体的类型参数化,然后再使用/调用的时候传入具体的类型。
定义格式
<类型>:制定一种类型的格式。这里的类型可以看成是形参
<类型1,类型2…>:制定多种类型的格式,多种类型之间用逗号隔开。这里的类型可以看成是形参。
将来具体调用时候给定的类型可以看成是实参,并且实参的类型只能是引用数据类型。
泛型的好处
1.把运行时期的问题提前到了编译时期
2.避免了强制类型转换。
3.只有指定类型才可以添加到集合当中:类型更加安全。
泛型类
对象实例化不指定泛型,默认为object;
泛型不同的引用不能互相赋值
class 类名
2
泛型方法
修饰符 T 方法名(T 形参名){}
有返回值的泛型方法
修饰符 void 方法名(T 形参名) {}
无返回值的泛型方法
泛型方法在调用时确定泛型距离数据
泛型接口
如果实现接口时指定接口的泛型的具体数据类型,这个类实现接口所有方法的位置都要泛型替换实际的具体数据类型
通配符
上限通配符 super 举例:<? super Person>(无穷小,Person]
只允许泛型为Person以及Person父类的引用调用
下线通配符 extends <?extends Person> [Person,无穷大)
只允许泛型为Person及Person子类的引用调用