Workaround für das Fehlen von Generatoren / Yield Keyword in Groovy

8

Ich frage mich, ob es einen Weg gibt, wie ich sql.eachRow wie einen Generator benutzen kann, um es in einem DSL-Kontext zu verwenden, in dem eine Collection oder ein Iterator erwartet wird. Der Anwendungsfall, den ich versuche, ist das Streaming der JSON-Generation - was ich versuche, ist etwas wie:

%Vor%     
wrschneider 09.06.2015, 21:50
quelle

1 Antwort

2

Sie benötigen eine Fortsetzungsunterstützung (oder Ähnliches), damit dies einigermaßen funktioniert. Groovy hat keine Fortsetzungen, die JVM auch nicht. Normalerweise funktioniert der Fortsetzungsmodus, aber dann müsste die Methode eachRow das unterstützen, was sie natürlich nicht tut. Der einzige Weg, den ich sehe, ist eine provisorische Lösung, die Threads oder etwas ähnliches verwendet. Also könnte so etwas für dich funktionieren:

%Vor%

Ich behaupte nicht, dass dies eine gute Lösung ist, nur ein zufälliger Verbraucher-Produzent-Work-Around für Ihr Problem.

    
blackdrag 10.06.2015 14:41
quelle

Tags und Links