泛型好处:
在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的咋样提高代码的重用率。
泛型定义:
允许在定义类、接口时指定类型行参,这个类型形参将在传入类型实参时确定。
数组与泛型的不同:
假设Foo是Bar的一个子类型(子类或者子类接口),那么Foo[]依然是Bar[]的类型,但G<Foo>不是G<Bar>的子类型。
泛型方法用法格式
修饰<T,S>返回值类型 方法名(形参列表){
//方法体}
类型通配符:
被限制的泛型通配符 List<? extends shape>表示所有shape泛型List的父类
深入类型
注(1)只有当定义方法时才可以使用数据形参,当调用方法(使用方法)时必须为这些数据形参传入实际的数据
(2)在静态方法、静态初始化或静态变量的声明和初始化中不允许使用类型形参。
设定通配符上限
格式 List <? extends shape>
设定类型形参的上限
格式//表明T类型必须是Number类或其子类,并实现java.io.serializable接口
public class Apple<T extends Number & java.io.Serializable>{
}