cbhe

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);    

 

欢迎有为青年来指点迷津~

分类:

技术点:

相关文章:

  • 2021-10-27
  • 2021-12-11
  • 2021-11-21
  • 2021-09-26
  • 2022-01-23
  • 2021-07-29
  • 2021-08-28
  • 2021-08-02
猜你喜欢
  • 2021-11-21
  • 2021-12-06
  • 2021-06-05
  • 2021-12-10
  • 2021-07-22
  • 2022-01-06
相关资源
相似解决方案