java为什么迭代器上也要加泛型呢? 10

比如我的迭代器是安装在集合上的,那么我集合上设定泛型不就行了,为什么iterator上也要再弄个泛型,不是多此一举吗,反正两个泛型要一致吧?... 比如我的迭代器是安装在集合上的,那么我集合上设定泛型不就行了,为什么iterator上也要再弄个泛型,不是多此一举吗,反正两个泛型要一致吧? 展开
 我来答
NiceBabyLuckys
2013-07-12 · TA获得超过167个赞
知道小有建树答主
回答量:257
采纳率:100%
帮助的人:42.1万
展开全部
由于Java泛型限定不是实际意义上的限定,只是编译时期的限定,当你编译后,虚拟机自动会将泛型限定符去掉,因此迭代器返回的类型只能是Object,所以你不想做强制转换,可以在迭代器上加上泛型以便然虚拟机知道你想返回的是你限定的类型。
百度网友d5dd84b
2013-07-12 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:169
采纳率:0%
帮助的人:72.2万
展开全部
你使用迭代器肯定是要遍历集合里面的数据吧,遍历的时候iterator默认遍历出来的是Object类型的,你加上泛型就不用强转了。
追问
可我集合上不是已经加泛型了吗?
追答
看你是那种喜欢钻牛角尖的人,你可以看看java的源代码,慢慢的研究一下就知道啦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
幽冥神者
2013-07-12 · TA获得超过3213个赞
知道大有可为答主
回答量:1953
采纳率:50%
帮助的人:1782万
展开全部
这个东西跟java泛型的历史因素有关,深层次的原因就不说了。简单说,就是他不像c#那样提供了原始的强制性的支持,所以你的iterator可以加泛型也可以不加,不强迫。所以如果你要加泛型,你就要单独加。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hulibabaii
2013-07-12 · 超过46用户采纳过TA的回答
知道小有建树答主
回答量:123
采纳率:0%
帮助的人:61.6万
展开全部
想当于强制转化,如果不加,得到的是OBJECT类型。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式