Listing B zeigt im Prinzip dieselbe Methode, aber diesmal mit einem Iterator als Rückgabewert. Auf den ersten Blick sieht das Ganze etwas komplizierter aus. Hier wird eine anonyme Inner Class verwendet, die einige Entwickler vielleicht etwas verwirren mag. Aber ansonsten ist alles recht durchsichtig. Wichtig zu beachten ist, dass keine Ergebnisse aus dem ResultSet entfernt werden, bevor der Iterator zurückgegeben wurde. Dabei kann der Iterator durchaus schon zurückgegeben werden, bevor das ResultSet vollständig gefüllt ist. Diesen Prozess kann man sogar noch weiter beschleunigen, indem man die Erstellung des ResultSet in die hasNext-Methode des Iterators verlegt, so dass das ResultSet erst erstellt wird, wenn hasNext das erste Mal aufgerufen worden ist.
Ebenfalls wichtig ist, dass die next-Methode des Iterators die hasNext-Methode intern aufruft, so dass wir sicherstellen können, dass die next-Methode von ResultSet aufgerufen wird, bevor der erste Aufruf der getString-Methode erfolgt – so wie es das ResultSet-API verlangt. Außerdem sorgen die private Variable next im Iterator und die damit verbundene Prüfung zu Beginn der hasNext-Methode dafür, dass die wiederholten Aufrufe von hasNext zwischen den Aufrufen der next-Methode gewährleistet sind – wie es das Iterator-API erfordert.
Ich habe absichtlich jegliche Synchronisierung weggelassen, da ich wie die Autoren des Java Collections API der Meinung bin, dass es oft effizienter ist, den Nutzer des Iterators für die Synchronisierung sorgen zu lassen, falls er es für notwendig hält. Wenn Sie allerdings diesen Iterator Thread-sicher machen wollten, müssten Sie nur die Methoden hasNext und next synchronisieren.
DeepL Voice ermöglicht Live‑Übersetzung von Meetings und Gesprächen in 13 Sprachen.
Betroffen sind Windows und Windows Server. Microsoft patcht aber auch Schwachstellen in Excel, Word und…
Es lässt sich um bis zu 50 Prozent dehnen. Allerdings besitzt es eine deutliche geringere…
Allerdings nimmt auch die Resilienz gegenüber Cyberattacken zu. Das BSI hat außerdem die Cybersicherheit anstehender…
Es ist das größte Wachstum in einem Jahr seit 2021. Unter anderem lässt das Interesse…
Magento zählt zu den führenden Shopsystemen in der Welt. Es punktet mit hoher Flexibilität und…