Java Generic
一.泛型
泛型规则:
- 所有泛型方法声明都有一个类型参数声明部分(由尖括号分隔),该类型参数声明部分在方法返回类型之前(在下面例子中的<E>)。
- 每一个类型参数声明部分包含一个或多个类型参数,参数间用逗号隔开。一个泛型参数,也被称为一个类型变量,是用于指定一个泛型类型名称的标识符。
- 类型参数能被用来声明返回值类型,并且能作为泛型方法得到的实际参数类型的占位符。
- 泛型方法体的声明和其他方法一样。注意类型参数只能代表引用型类型,不能是原始类型(像int,double,char的等)
集合中
异常类不能声明为泛型
T[] arr= new T[10];//compile not pass
ArrayList<Number> list1 = new ArrayList<String>();//compile not pass
ArrayList<Number> list3 = new ArrayList<Float>();//compile not pass
ArrayList<Integer> list2 = new ArrayList<Number>();//com[ile not pass
![](data:image/png;base64,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)
类型通配符
1、类型通配符一般是使用?代替具体的类型参数。例如 List<?> 在逻辑上是List<String>,List<Integer> 等所有List<具体类型实参>的父类。
2.类型通配符上限通过形如List来定义,如此定义就是通配符泛型值接受Number及其下层子类类型
<? extends T>和<? super T>的区别
- <? extends T>表示该通配符所代表的类型是T类型的子类。小于等于T
- <? super T>表示该通配符所代表的类型是T类型的父类。大于等于T
import java.util.*;
public class GenericTest { public static void main(String[] args) {
List<String> name = new ArrayList<String>();
List<Integer> age = new ArrayList<Integer>();
List<Number> number = new ArrayList<Number>();
name.add("icon"); age.add(18); number.add(314);
//getUperNumber(name);//1 编译错误String 不是Number的子类,Number及其下层子类类型
getUperNumber(age);//2
getUperNumber(number);//3 }
public static void getData(List<?> data) {
System.out.println("data :" + data.get(0)); }
public static void getUperNumber(List<? extends Number> data) {
System.out.println("data :" + data.get(0)); } }
要爱上写总结,不断的总结。
不断地反省、提升、改变自己。
简单、专注、持久。