A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 孟凡超 中级黑马   /  2014-7-22 11:10  /  6637 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 孟凡超 于 2014-7-22 11:12 编辑
  1. /*先把int型数组转成Integer类型数组*/
  2. int[] arr = {1,3,2,5,3,6};
  3. Integer[] array = new Integer[arr.length];
  4. for(int i=0; i<arr.length; i++)
  5. {
  6.           Integer integer = new Integer(arr[i]);
  7.           array[i] = integer;
  8. }
  9. /*再把Integer类型数组转换成集合*/
  10. ArrayList<Integer> list = (ArrayList<Integer>) Arrays.asList(array); /*此处出现错误*/
  11. System.out.println(list);
复制代码
Exception in thread "main" java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList
如何解决呢??望指点

7 个回复

倒序浏览
asList方法返回值是List<T>,但没有指明是List的哪个子类,你强转成ArrayList当然不对。这就好比,Dog和Cat都是Animal,但一个函数返回给你一个Animal,你能确定是Cat还是Dog么?在不确定的情况下你就强转为Dog,万一是Cat呢?
回复 使用道具 举报
我不知道你对集合的理解,我也不知道的理解的对不对,但是把Integer类型数组转换成集合中,你的代码中array本来就是一个Arraylist可变数组。
ArrayList<Integer> list = (ArrayList<Integer>) Arrays.asList(array);
将可变数组变为 一个可变数组是几个意思?
我猜想你可能想要这个结果
  1.         /*先把int型数组转成Integer类型数组*/
  2.                  int[] arr = {1,3,2,5,3,6};
  3.                  Integer[] array = new Integer[arr.length];
  4.                  for(int i=0; i<arr.length; i++)
  5.                  {
  6.                           Integer integer = new Integer(arr[i]);
  7.                           array[i] = integer;
  8.                           System.out.print(array[i]+"   ");
  9.                  }
  10.                  
  11.                  /*再把Integer类型数组转换成集合*/
  12.                  List<Integer> list =  Arrays.asList(array); /*此处出现错误*/
  13.                  System.out.println(list);
复制代码
回复 使用道具 举报
额还没看到这里,表示看不懂的路过。
回复 使用道具 举报
我觉得2楼才是真相啊
回复 使用道具 举报
草鱼狂飙 发表于 2014-7-22 11:42
我不知道你对集合的理解,我也不知道的理解的对不对,但是把Integer类型数组转换成集合中,你的代码中array ...

谢谢。。。。。。
回复 使用道具 举报
fantacyleo 发表于 2014-7-22 11:39
asList方法返回值是List,但没有指明是List的哪个子类,你强转成ArrayList当然不对。这就好比,Dog和Cat都 ...

好的,让我整理一下思路
回复 使用道具 举报
我也感觉二楼是对的, 你用的eclipse 编程吗? 还是原生态?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马