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

2022-09-03 13:48:22

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

我正在考虑某种向后兼容性,或者有机会在集合级别编写一些关于该方法的JavaDoc。

还有其他想法吗?


答案 1

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


答案 2

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

请注意,Closeable 也完成了相同的操作,这也是在 1.5 中引入的。

据我所知,从 Collection 类中删除该方法不会出现二进制兼容性问题。