So habe ich ziemlich ausführlich mit der Neo4j API gearbeitet, und ich habe festgestellt, dass so gut wie immer werden sie Funktionen haben, dieWann ich Iterable <String> anstatt List, Set, Collection zurückgeben soll?
Iterable<Class>
zurückkehren, während ich immer verstanden haben, dass es besser ist, eine von Set zurückzukehren, List oder Sammlung, es sei denn, es besteht ein zwingender Grund, etwas anderes zu tun. Legen Sie fest, dass dem Benutzer angezeigt wird, dass es niemals doppelte Elemente geben wird. Listen Sie auf, wenn die Reihenfolge wichtig ist oder dass sie Duplikate enthält, oder Sammeln, wenn Sie keine Richtlinie haben.
Ich bevorzuge diese zu Iterable, da sie nützliche Dienstprogramme wie .contains(), .add() etc. haben. Ich habe festgestellt, dass ich sehr oft Code schreiben muss, um ein Iterable in eine Sammlung umzuwandeln.
Also meine Frage ist: Vermisse ich etwas Wichtiges? Gibt es einen vernünftigen Grund, Iterable Over Collection zu verwenden? Wann würdest du das tun? Offensichtlich scheinen die Jungs von Neo4j erstklassige Programmierer zu sein, also nehme ich an, dass sie einen Grund dafür haben, aber ich kann es nicht sehen.
Ja, es ist meist über faule Auswertung der Ergebnisse. Die Sammlung Klassen sind alle eifrig. Eigentlich ist Iterable nur syntaktischer Zucker für einen 'Inter- ater', um den einzelnen Iterator innerhalb einer Foreach verwenden zu können –