iterator中的next()为什么要强转?
我查API看到next()返回的类型<E>,这不就是返回对象类型么,怎么在上题中还对it.next()进行person类型强转?求指点!谢谢(能通俗易懂的讲解一下最好)...
我查API看到next()返回的类型<E>,这不就是返回对象类型么,怎么在上题中还对it.next()进行person类型强转?求指点!谢谢(能通俗易懂的讲解一下最好)
展开
1个回答
展开全部
因为你的集合和迭代器没有定义泛型,next()默认会返回Object,所以需要强转,两个地方加上泛型就OK,HashSet<Person> hs = new HashSet<Person>();Iterator<Person> it = hs.iterator();
求个采纳。广告:5044群5871自学的进
求个采纳。广告:5044群5871自学的进
更多追问追答
追问
没看懂你说的啊,next()默认返回Object,那么强转(Person)it.next(); 这个强转的意思不就是强转成Object么?(难道是我理解错了?) 和默认的返回类型一样,那么干嘛还要加这个强转?
追答
默认是object,强转(Person)it.next();是强制转换成Person
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询