java中关于泛型与数组的疑问?

为什么代码 List<String>[] sa = new List<String>[10];是错误的?
2025-04-07 11:11:20
推荐回答(2个)
回答1:

public static void main(String[] args) {

    // 不能使用泛型数组

    // Cannot create a generic array of List

    // List[] lists = new List[10];


    // 但是你可以使用集合数组, 如果你非要这样做的话

    List[] test2 = new List[10];


    // 我不确定你这样做的动机是什么, 如果非要使用到泛型集合数组的话, 也可以这样

    // Key: 索引

    // Value: 泛型集合

    // 缺点: 索引需要自己维护

    Map> collectionArray = new LinkedHashMap>();

}

回答2:

java中不允许定义泛型的数组
你可以定义成这样
List sa = new List>(10);