Question

Pourquoi est-il la méthode iterator () définie sur l'java.util.Collection d'interface quand il étend déjà java.util.Iterable qui a cette méthode bien définie.

Je pense une sorte de reculer ou d'une compatibilité occasion d'écrire une JavaDoc sur la méthode au niveau de la collection.

D'autres idées?

Était-ce utile?

La solution 4

Je suis en train de faire une enquête plus approfondie sur cette question et ont constaté que les égaux () et hashcode () sont également remplacés.

Il est clair que la seule raison de cela peut être ajouter la javadoc -. Peut-être ce pourquoi a également été remplacé iterator ()

Autres conseils

Rétrocompatibilité. Iterable n'a pas été introducted jusqu'à 1,5 avec le pour (Object o: itérables) construire. Auparavant, toutes les collections devaient fournir un moyen de les itérer.

Je pense qu'il était juste pour éviter l'apparition d'enlever une méthode d'un point de vue de la documentation. Bien que javadoc est agréable, il serait difficile de remarquer / appreicate une méthode être déplacé d'une interface à une super-interface.

Notez la même chose a été fait avec Closeable, a également introduit dans 1,5.

En ce que je sache, il n'y aurait eu aucun problème de compatibilité binaire avec la suppression de la méthode de la classe Collection.

Iterable a été introduit en 1,5. Comme il faisait partie de la collection d'avant 1,5 qu'ils probablement ne pas le retirer. Et comme l'autre contributeur a souligné, elle a mieux JavaDoc.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top