为什么通过Arrays.asList转化后的list不能强制转换成ArrayList(没有编译错误,但是运行时要出现异常) 5

String[]str={"liu","guan","zhang"};Listlist1=newArrayList();list1=Arrays.asList(str);... String[] str={"liu","guan","zhang"};
List list1 = new ArrayList();
list1=Arrays.asList(str);

ArrayList list2 = (ArrayList)list1//这个有异常
这是什么原因啊,求教高手,老师说是list1中类型太多,不能强制转换,不是很懂
; 忘了打,不是这个问题。 如果这样就没有问题 List list3=new ArrayList(list1); ArrayList list4=(ArrayList)list3;//这个可以转
展开
 我来答
没有响应m2
2013-02-25 · TA获得超过8387个赞
知道大有可为答主
回答量:7579
采纳率:33%
帮助的人:3490万
展开全部
强制乡下转型 必须先确定可以像下转型才行

简单的例子 Object o = new Object();
如果按你上边说的的话 这个o的就可以强制转型成任意一个类型的对象 多有的类都继承Object类嘛

补充里说的当然可以转了 List list3=new ArrayList(list1); 这个时候用到了自动向上转
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5cca045
2013-02-24 · TA获得超过220个赞
知道答主
回答量:84
采纳率:0%
帮助的人:40万
展开全部
有泛型,不确定类型,当然不给你转
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
来自太阳de外星人
2013-02-24 · TA获得超过297个赞
知道小有建树答主
回答量:650
采纳率:80%
帮助的人:189万
展开全部
ArrayList list2 = (ArrayList)list1.clone();

是警告还是异常?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
悉心且深远灬萨摩A
2013-02-24 · TA获得超过636个赞
知道小有建树答主
回答量:294
采纳率:0%
帮助的人:309万
展开全部

那个只是myeclipse的警告,警告是可以不用管了。

java中的泛型不是真正的泛型。他这个最大的作用就是在编译期的时候可以检查类型。

其实是用不着强转的。

ArrayList list2 = (ArrayList)list1   //你这个没 ;吧,错在这里,不是强转的问题。

这是一种多态,多态是可以强转的。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式