example - list types java
¿Por qué hay un método iterator() en java.util.Collection (4)
Compatibilidad al revés. Iterable no se introdujo hasta 1,5 con el constructo for (Object o: iterable). Anteriormente, todas las colecciones tenían que proporcionar un medio para iterarlas.
¿Por qué existe el método iterator () definido en la interfaz java.util.Collection cuando ya se extiende java.util.Iterable que tiene este mismo método definido.
Estoy pensando en algún tipo de compatibilidad hacia atrás o la oportunidad de escribir algo de JavaDoc sobre el método en el nivel de colección.
¿Alguna otra idea?
He estado investigando un poco más sobre esto y he descubierto que los métodos equals () y hashcode () también se sobrescriben.
Claramente, la única razón para esto puede ser agregar el javadoc - quizás esta es la razón por la cual el iterador () también fue sobrescrito.
Iterable fue introducido en 1.5. Como era parte de Collection from before 1.5, probablemente no lo eliminaron. Y como señaló el otro colaborador, tiene mejor JavaDoc.
Sospecho que fue solo para evitar la apariencia de eliminar un método desde el punto de vista de la documentación. Aunque javadoc es bueno, sería difícil darse cuenta / apreciar un método que se está moviendo de una interfaz a una super-interfaz.
Tenga en cuenta que lo mismo se hizo con Closeable, también introducido en 1.5.
Hasta donde yo sé, no habría problemas de compatibilidad binaria con la eliminación del método de la clase Collection.