- 参数化的类型 List
- 实际数据类型 String
- 泛型 List
- 形式类型参数 E
- 无限制通配符类型 List<?>
- 原生类型 List
- 有限制类型参数
- 递归类型限制 <T extends Comparable>
- 有限制通配符类型 List<? extends Number>
- 泛型方法 static List asList(E[] a)
- 类型令牌 String.class
抽离了数据类型与代码逻辑,本意是提高程序代码的简洁性和可读性,并提供可能的编译时类型转换安全检测功能。
泛型中值得注意的地方
-
泛型类或者泛型方法中,不接受 8 种基本数据类型
-
不能创建具体类型的泛型数组
List<Integer>[] li2 = new ArrayList<Integer>[];
List<Boolean> li3 = new ArrayList<Boolean>[];这两行代码是无法在编译器中编译通过的,原因还是类型擦除带来的影响。
List<Integer> 和 List<Boolean> 在 JVM 中等同于List<Object>。