Java 8's oder Else funktioniert nicht wie erwartet

7

Betrachten Sie die folgende Methode, die ein Feld zurückgibt, wenn es existiert oder rekursiv selbst aufruft, bis das Feld gefunden wird:

%Vor%

Während das funktioniert, dachte ich, ich könnte es verkürzen zu:

%Vor%

Aber das Seltsame ist, dass der .orElse -Teil anscheinend immer aufgerufen wird.

Was fehlt mir hier?

    
helpermethod 27.07.2015, 15:35
quelle

1 Antwort

23

Die Argumente für eine Methode werden immer vor dem Aufruf der Methode ausgewertet. Sie möchten orElseGet , das ein Supplier benötigt, das nur aufgerufen wird, wenn Optional nicht vorhanden ist:

%Vor%     
Alex 27.07.2015, 15:45
quelle

Tags und Links