43 votes

Java: pourquoi ne Collecte.addAll ne peut pas accepter Iterables?

Je me demande pourquoi l' Collection.addAll() méthode accepte uniquement les autres Collections, mais pas Iterables. Pourquoi est-ce?

Toute méthode similaire pour le faire pour Iterables?

39voto

Michael Borgwardt Points 181658

Sans doute parce que l' Collection interface a été introduit dans Java 1.2 alors que Iterable est apparu seulement dans la version 1.5, et de changer l'interface de casser toutes les implémentations existantes.

33voto

En cas de doute, vérifiez toujours la Goyave (ou Communes):

11voto

OscarRyz Points 82553

Fondamentalement, car un objet iterable ne peut jamais fr ( qui est, getNext() retourne true pour toujours )

Aussi, pour garder la congruence, vous pouvez penser à une Collection peut ajouter tous les éléments d'une autre collection, mais, un objet iterable n'est pas forcément une collection ( c'est peut-être rien, comme un jeu de résultats wrapper par exemple )

4voto

Jon Skeet Points 692016

Il existe assez peu de choses dans le cœur du JDK qui ne fonctionne pas aussi bien avec la plaine Iterables comme ils peuvent. Je vous recommande d'utiliser la Goyave surmonter beaucoup de ces lacunes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X