Ich versuche, eine Karte von Namen zu einem Wert zu bauen. Ich habe diesen Stream, der die Methode getValue
zweimal aufruft. Einmal, um sicherzustellen, dass der Rückgabewert nicht null ist, und dann erneut, um den Wert tatsächlich zu sammeln. Ich versuche herauszufinden, wie man einen Lambda-Block hinzufügt, um das Rückgabeobjekt zu erfassen.Wie verhindert man, dass der Java-Stream dieselbe Methode zweimal ausführt?
Arrays.stream(enums)
.collect(Collectors.toMap(
en -> en.name(),
en -> ((issue.getValue(en) != null) ? issue.getValue(en) : "")
));
Ich bekomme verschiedene IDE-Syntaxfehler, wenn ich verschiedene Anordnungen ausprobierte. Ich denke, das sollte trivial sein, aber es entzieht sich mir. Jede Hilfe wäre genial ...
Dank verwenden, dies hat den Trick perfekt und war Was ich zuerst machen wollte. Beachte: dass die Antwort von Yassin Hajaj auch funktioniert hat, aber ich habe diesem einen Vorteil gegeben. –