常用术语:
参数化的类型 List<String>
实际类型参数 String
泛型 List<E>
形式类型参数 E
无限制通配符类型 List<?>
原生态类型 List
有限制类型参数 <E extends Number>
递归类型限制 <T extends Comparable<T>>
有限制通配符类型 List<? extends Number>
泛型方法 static <e> List<E> asList(E[])
类型令牌 String.class
备注:
1.List<String>是原生态类型List的一个子类型,而不是参数化类型List<Object>的子类型
2.Set<Object>是个参数化类型,表示可以包含任何对象类型的一个集合
Set<?>则是一个无限制的通配符类型,表示只能包含某种未知对象类型的一个集合
Set则是原生态类型,它脱离了泛型系统
3.数组是协变的,即数组类型Sub[]就是Super[]的子类型.
4.数组和泛型不能很好地混合使用。例如,new List<E>[]、new List<String>[]和new E[]都是不合法的