繁体   English   中英

为什么在java.util.Collection上有一个方法iterator()

[英]Why is there a method iterator() on java.util.Collection

为什么在接口java.util.Collection上定义了iterator()方法,它已经扩展了java.util.Iterable,它定义了这个方法。

我正在考虑某种向后兼容性或在集合级别上对方法编写一些JavaDoc的机会。

还有其他想法吗?

向后兼容性。 直到1.5使用for(Object o:iterable)构造才引入Iterable。 以前,所有集合都必须提供迭代它们的方法。

我怀疑这只是为了避免从文档的角度出现删除方法。 虽然javadoc很好,但很难注意到/一个方法从一个接口移动到一个超级接口。

注意与Closeable相同,也在1.5中引入。

据我所知,从Collection类中删除方法没有二进制兼容性问题。

Iterable在1.5中引入。 因为它是1.5之前的Collection的一部分,所以他们可能只是没有删除它。 正如另一位撰稿人指出的那样,它确实有更好的JavaDoc。

我一直在对此进行更多调查,并发现equals()和hashcode()方法也被覆盖。

显然,唯一的原因可能是添加javadoc - 也许这就是为什么iterator()也被覆盖了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM