泛型:
泛型概述:
-它的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。
泛型的定义格式:
- <类型>:指定一种类型的格式。这里的类型可以看成是形参。
- <类型1,类型2…>:指定多种类型的格式。这里的类型可以看成是形参。
-将来具体调用时候给的类型可以看成是实参,并且实参的类型只能是引用数据类型。
泛型的好处:
-把运行时期的问题提前到了 编译期间。
-避免了强制类型转换。
泛型类:
定义格式:修饰符 class 类名<类型>{ };
泛型方法:
定义格式:修饰符<类型> 返回值类型 方法名(类型 变量名){ };
泛型j接口:
定义格式:
修饰符 interface 接口名<类型>{ };
类型通配符:
类型通配符的作业:
-为了表示各种泛型List的父类,可以使用类型通配符
类型通配符的分类:
类型通配符<?>
-List<?>:表示元素类型未知的list,它的元素可以匹配任何类型。
-这中国带通配符的List仅表示它是各种泛型List的父类,并不能把元素添加到其中。
类型通配符上限:<? extends 类型>。
-List<? extends Number>:它表示的类型是Number或者子类型。
类型通配符下限:<? super 类型>
-List<? super Number >:它表示的类型是Number或者其父类型
可变参数:
可变参数介绍:可变参数又称参数个数可变,用作方法的形参出现,那么方法参数个数介绍可变了。
可变参数定义格式:修饰符 返回值类型 方法名(数据类型…变量名){ }。