Erstellen Sie ein Objekt aus Optional<Object>
Also habe ich einen Strom, der kommt aus einer Liste, aber ich habe einige Schwierigkeiten die Umwandlung in einen <ObjectType>,
hier ist, was ich versucht habe:
ObjectType sco = getList().stream()
.filter(p -> p.getValue() == value)
.findFirst(); //also tried .orElse(null);
wäre jemand bitte so freundlich sein, zu behaupten, wohin ich gehe falsch gemacht?
(Ich entschuldige mich, wenn dies wurde gebeten vor, aber ich konnte nicht finden, dass eine Diskussion über dieses Thema (oder nicht wissen, die richtigen Begriffe zu suchen))
Vielen Dank im Voraus!
- Was passiert, wenn man versucht
.orElse(null)
? - nun habe ich versucht es ohne findFirst() und das war mein Untergang..., Wenn Sie verwenden .findFirst().orElse(null) wie @Brian Angew schlägt es funktioniert perfekt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
findFirst()
gibt Ihnen einenOptional
und Sie haben dann zu entscheiden, was zu tun ist, wenn es nicht vorhanden ist. SofindFirst().orElse(null)
sollte Ihnen das Objekt oder null, wenn nicht vorhandenDu könnte einfach eine
.get()
auf dieOptional
, aber das betrachtet werden könnte als schlechte Praxis, daget()
wird eine exception werfen wennOptional
keinen Inhalt hat. Sie sollten in der Regel behaupten, Anwesenheit/Abwesenheit derOptional
und entscheiden, was zu tun ist in jedem Fall (das ist, warum es dort -, so dass Sie wissen, dass etwas wirklich optional und Sie haben zu bestimmen, was zu tun ist)Wenn Sie eine Aktion, die Sie ausführen möchten, auf das Objekt Präsenz, und Sie wollen nicht zu tun, alles auf Abwesenheit, können Sie rufen Sie
.ifPresent()
und bieten einen lambda-Ausdruck als argument. Das wird genannt werden mit dem enthaltenen Objekt, falls vorhanden.Ich denke, Sie möglicherweise suchen für
findFirst().or Else(null)
.findFirst()
zurückOptional
- leer im Fall eines leeren steam.Wenn ich Ihren Kommentar missverstanden. Haben Sie versucht das, oder haben Sie versucht
orElse(null)
ohnefindFirst()
?