Java 泛型数组问题
Java中不支持泛型数组, 以下代码会编译报错:generic array creation
1 ArrayList<Integer>[] listArr = new ArrayList<Integer>[10];
Java 文档给了一个例子来说明为什么不能支持泛型数组:
1 List<String>[] lsa = new List<String>[10]; // illegal 2 Object[] oa = lsa; // OK because List<String> is a subtype of Object 3 List<Integer> li = new ArrayList<Integer>(); 4 li.add(new Integer(3)); 5 oa[0] = li; 6 String s = lsa[0].get(0);
但以下代码不会在编译时报错,只是运行时报格式转换异常:
1 List<Integer>[] listArr = (List<Integer>[])new ArrayList[5]; 2 Object[] oa = listArr; 3 ArrayList<String> strList = new ArrayList<>(); 4 strList.add("hello"); 5 oa[0] = strList; 6 int n = listArr[0].get(0);
欢迎有为青年来指点迷津~