Sagen wir, ich habe den folgenden CodeVerwendung mehrerer Kartenfunktionen gegen eine Blockanweisung in einer Karte in einem Java-Stream
data.stream()
.map(x -> {
Object a = maybeReturnsNull(x);
return a == null ? defaultValue : a;
})
ich eine Funktion, die null
zurückkehren könnte, und ich Anwendung auf ein Element des Streams. Ich möchte dann sicherstellen, dass alle null
Ergebnisse stattdessen auf einen Standardwert geändert werden. Gibt es einen signifikanten Unterschied zwischen der Verwendung von zwei Maps wie im folgenden Beispiel im Vergleich zum vorherigen Beispiel, das eine Helper-Variable a
definiert und einen Codeblock im Lambda-Ausdruck verwendet?
Gibt es einen Standard für die Verwendung von Blockanweisungen mit Lambda-Funktionen?
oder '.map (dieses :: maybeReturnsNull) .map (optional :: ofNullable) .map (o -> o.orElse (default))' – assylias
@assylias: selbst wenn dies nicht der Fall einen Unterschied in der Leistung, ich denke, eine einzelne ".map (x -> Optional.ofNullable (vielleichtReturnsNull (x)). oderElse (defaultValue))" sollte vor drei Mapping-Schritten hier bevorzugt werden. Aber gut, es ist immer noch eine Frage des Geschmacks ... – Holger