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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王洪波 中级黑马   /  2013-5-10 16:36  /  1419 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王洪波 于 2013-5-12 00:08 编辑
  1. Collection c3 = new HashSet();
  2. c3.add("A");
  3. c3.add("F");
  4. String[] ss = (String[])c3.toArray();
  5. System.out.println(ss);
复制代码
报这个异常 java.lang.ClassCastException, why?

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

6 个回复

倒序浏览
本帖最后由 yedong07a 于 2013-5-10 18:23 编辑
  1. Collection c3 = new HashSet();
  2. c3.add("A");
  3. c3.add("F");
  4. Object[] objs = c3.toArray();
  5. for (Object obj : objs) {
  6.     System.out.println(obj);
  7. }
复制代码
这样试试

Collection的toArray()方法返回的Object[]

评分

参与人数 1技术分 +1 收起 理由
殇_心。 + 1

查看全部评分

回复 使用道具 举报
yedong07a 发表于 2013-5-10 17:38
这样试试

为什么不能强制类型转换?
回复 使用道具 举报
  1. import java.util.*;
  2. class  SetDemo
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 Collection<String> c3 = new HashSet<String>();//指定泛型
  7.                         c3.add("A");
  8.                         c3.add("F");
  9.                         String[] str = new String[c3.size()];  //集合变数组,需要在这里先创建一个数组。
  10.                         String[] ss = c3.toArray(str);  //toArray(),里面传进数组参数。(String[]),不知道你这是什么意思,强转?这也用不着强转
  11.                         System.out.println(Arrays.toString(ss));//是System,不是system;打印ss只是数组的地址值
  12.         }
复制代码

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

回复 使用道具 举报
孙金鑫 发表于 2013-5-10 18:05

先谢谢你的解答。你的解答是正确的。可是你改变了前提条件,我没有用泛型,不是吗?
我问的是强制类型转换为什么会抛异常
回复 使用道具 举报
如果问题已解决,请及时修改分类,否则继续提问,谢谢合作!
回复 使用道具 举报
import java.util.*;

class  SetDemo

{

        public static void main(String[] args)

        {

                Collection c3 = new HashSet();

                        c3.add("A");

                        c3.add("F");

                        

                        Object[] ss = c3.toArray();  

                        System.out.println(Arrays.toString(ss));

        }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马