单独的T 代表一个类型 ,而 Class
E - Element (在集合中使用,因为集合中存放的是元素)
T - Type(Java 类)
K - Key(键)
V - Value(值)
N - Number(数值类型)
? - 表示不确定的java类型
举例说明:
Set
List
List> 表示 集合里的对象类型不确定,未指定
List 同 List> 是一样的。
泛型的作用:
1、用泛型:
Java代码
List
T t=list.get(0);
2、不用泛型:
Java代码
List list=new ArrayList();
T t=(T)list.get(0);
自定义泛型接口、泛型类和泛型方法
***泛型类型在逻辑上看以看成是多个不同的类型,实际上都是相同的基本类型。
类型通配符
类型通配符一般是使用 ? 代替具体的类型实参。注意了,此处是类型实参,而不是类型形参!且Box>在逻辑上是Box
类型通配符上限通过形如Box extends Number>形式定义,相对应的,类型通配符下限为Box super Number>形式,其含义与类型通配符上限正好相反.
List extends T>
表示该集合中存在的都是类型T的子类,包括T自己List super T>
表示该集合中存的都是类型T的父类,包括T自己1、A extends B ,则 B 是A 的父类或者祖先
若参数为T extends B> 意味着子类是不确定的,因此只能读取数据,而不能插入数据,即get()和set()方法中只能是get有效
2、A super B, 则A是B 的父类或者祖先
若参数为T superB> 意味着父类是不确定的,因此只能插入数据,而不能读取数据,即get()和set()方法中只能是set有效