规定容器要添加的元素的类型,只允许符合泛型的元素添加进来,也就是说泛型就是元素添加的规则
在这里插入代码片
ArrayList<String> list = new ArrayList<String>();
泛型没有多态的概念,左右两边的数据 类型必须 要一致,或者只是写一边的泛型类型。
自定义泛型:自定义泛型就是一个数据类型的占位符或者是一个数据类型的变量
方法上的自定义泛型
修饰符 <声明自定义的泛型>返回值类型 函数名(使用自定义泛型 …)
自定义泛型的具体数据类型是在调用该方法的时候确定具体的数据类型
静态方法需要自己定义泛型
泛型中不能使用基本类型数据类型,要使用对应的包装类
泛型类
class classname 声明泛型{
//在类上自定义泛型是在使用该类创建对象时确定的
//类上声明了自定义泛型,如果创建时没有指定,那么默认的为object类型
//在类上自定义泛型,在静态方法上无法使用
}
泛型接口
接口上的自定义泛型是在实现一个接口时指定的
在实现接口的时候没有指定,则默认的为object类型
<? super T> 存储T的父类类型 下限
<? extend T>存储T 的子类类型 上限