Ich bin neu in Java 8. Ich bin nicht in der Lage zu verstehen, was im folgenden Code falsch ist. Die Idee ist, Collection<User>
zu senden, wenn es nicht leer ist. Aber wenn die Sammlung leer ist als gesendet HttpStatus.NOT_FOUND
Entity Response.
Eclipse zeigt mir einen Fehler im folgenden Punkt .orElse
Die Methode
nicht definiertorElse(new ResponseEntity<>(HttpStatus.NOT_FOUND))
ist für den TypStream<ResponseEntity<User>>
Meine Basis-Interface-Methode sieht folgendermaßen aus
%Vor% Sie mischen zwei Dinge zusammen. Die erste Aufgabe besteht darin, die Iterable
in eine Collection
zu konvertieren, die Sie tatsächlich mit der Stream
API lösen können:
Beachten Sie, dass dieser Stream ein Stream von User
s ist, kein Stream von Listen. Daher können Sie mit diesem Stream kein list
auf etwas anderes abbilden. Die Operation map
ordnet jedem Element des Streams ein neues Element zu
Dann können Sie diese Liste verwenden, um ResponseEntity
Sie können diese Schritte kombinieren, indem Sie ein Collector
erstellen, das diese Schritte ausführt, obwohl dies keinen Vorteil bringt, es ist nur eine Frage des Stils:
Das hängt von Ihrem Terminal-Betrieb des Streams ab. Denken Sie daran, dass ein Stream nur einmal verbraucht werden kann.
Optional
zurückgibt (z. B. findAny
), können Sie die Nullprüfungsmethoden des optionalen Objekts verwenden. Tags und Links java java-8 lambda java-stream