黑马程序员技术交流社区
标题:
请大神帮我看一题
[打印本页]
作者:
崔累坤
时间:
2015-9-14 21:52
标题:
请大神帮我看一题
请看下面的代码,在while遍历里,为什么还要做String s = (String)it.next()呢,我存的本来就是字符串啊,怎么还要强转呢???
public static void main(String[] args)
{
ArrayList al = new ArrayList();
al.add("abc356");
al.add("abc3543");
al.add("abc126");
al.add("abc0897");
Iterator it = al.iterator();
while (it.hasNext())
{
String s = (String)it.next();
System.out.println(s+"...."+s.length());
}
}
作者:
铁蛋
时间:
2015-9-14 22:03
Iterator it = al.iterator();是多态,it是object类型你信不?
作者:
sunshine9091
时间:
2015-9-14 22:05
标题:
RE: 请大神帮我看一题
你把强转(String)去掉 看下报错 ,就明白了。集合里存的Object对象 赋值给String对象,要强转。编译时,谁知道你里面存的什么呀
作者:
Ralap军
时间:
2015-9-14 22:07
本帖最后由 Ralap军 于 2015-9-14 22:46 编辑
不好意思,搞错了,那是泛型,泛型也需要强转。it.next()返回的是Object,需要强制向下转型
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2