Kann Optional ifPresent () in einem größeren Ausdruck verwendet werden, um einen Aufruf von get () zu minimieren?

7

Um den Aufruf von get() zu vermeiden, der eine Ausnahme auslösen kann:

%Vor%

Ich kann diesen Ausdruck durch ersetzen:

%Vor%

Aber was, wenn ich einen größeren Ausdruck wie:

machen muss %Vor%

Ist es möglich, immer noch eine Lambda-Form zu verwenden, die einen Aufruf von get() verhindert?

Mein Anwendungsfall ist es, get() soweit wie möglich zu vermeiden, um zu verhindern, dass eine mögliche ungeprüfte Ausnahme übersehen wird.

    
Zhro 17.10.2017, 04:55
quelle

2 Antworten

11

Meine Annahme ist, dass Sie die anderen boolean s separat behandeln müssten, aber ich könnte mich irren.

%Vor%

Eigentlich könnte eine seltsame Lösung sein:

%Vor%

HINWEIS

  • Achten Sie darauf, shinjw's Lösung hier für ein drittes Beispiel zu sehen!
Jacob G. 17.10.2017, 04:59
quelle
8

Hinzufügen einer weiteren zur Variation der vorherigen Antwort:

%Vor%

Wenn ein vorhanden ist. Überprüfen Sie und fügen Sie das unverpackte Objekt

hinzu     
shinjw 17.10.2017 05:18
quelle

Tags und Links