文章目录 1. 问题导入 2. 究其原因 3. Collections类使用了一个丑陋的技巧来解决这个问题 4. Java创建泛型数组 1. 问题导入 无法创建T的通用数组 2. 究其原因 在 Java 中,数组是协变的。 什么是协变: - 例如集合到集合 - 例如:int[] arr = new int[]; - 就是对特定类型使用 general 的类型特化 泛型类型参数不是协变的。 3. Collections类使用了一个丑陋的技巧来解决这个问题 怎么丑陋呢? 要将内置数组与 Java 泛型或泛型类型参数 E 一起使用 该数组的类型必须是 java.lang.Object 解释 就是数组变为Object类 为什么这样不好? 违反了数组的基本定义。