यहाँ मुहावरेदार दृष्टिकोण इस प्रकार होगा (JDK 9 API का उपयोग करके):
try (Stream<Record5<UUID, UUID, String, Integer, String>> stream = valuesToQuery
.stream()
.map(this::getSelectQueryForValue)
.reduce(Select::union)
.stream() // JDK 9 method
.flatMap(Select::fetchStream)) {
...
}
यह उपयोगी Optional.stream()
विधि, जिसे JDK 9 में जोड़ा गया था। JDK 8 में, आप इसके बजाय ऐसा कर सकते हैं:
valuesToQuery
.stream()
.map(this::getSelectQueryForValue)
.reduce(Select::union)
.ifPresent(s -> {
try (Stream<Record5<UUID, UUID, String, Integer, String>> stream =
s.fetchStream()) {
...
}
})
मैंने इसके बारे में और अधिक विस्तार से यहाँ ब्लॉग किया है।