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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

吴俊旭

中级黑马

  • 黑马币:0

  • 帖子:27

  • 精华:0

本帖最后由 杨兴庭 于 2013-8-2 18:59 编辑

最近看方立勋老师教学视频,其中见到这样的代码,百思不得其解,求助!这段代码是在写tag标签自定义的时候,在标签处理器类中,写的一段Object[]数组是否匹配存在的代码。

private Object items;
if(items instanceof Object[]){
//Object obj[]= items;一开始是这个的,eclipse上是提示类型不能转换。
Object obj[]= (Object[]) items;
                        //这里的编码是直接从object强制了,编译没有报错了,但运行时就出了问题
                        //这里想问下,可以强转Object类型成Object[]吗?
                        //为什么我看视频的时候,视频中强转运行也没问题呢?
this.collection=Arrays.asList(obj);
}
Type mismatch: cannot convert from Object to Object[]

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

4 个回复

倒序浏览
有大神在吗?帮忙解决下,求助啊
回复 使用道具 举报
private Object items;//这里是Object类型。
Object obj[]= (Object[]) items;//这里因为你加了(Object[])告诉编译器你知道类型有问题你会去做类型转换动作,所以编译器给你通过了。但是运行的时候发现你将Object类型转成Object[]所以出错了。

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
异常错误提示已经很明显了,类型匹配失败:不能把Object类型转换成Object[]数组。就像不能把一个int数字强转成一个int[]数组是一样的。
编译时只检查语法错误,没有执行转换动作,所以没有报错。

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
你这标题...
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马