Entfaltung mehrerer optionaler Variablen in Java 8Java

Java-Forum
Anonymous
 Entfaltung mehrerer optionaler Variablen in Java 8

Post by Anonymous »

Ich habe das folgende Problem. Nehmen wir an, Sie haben zwei optionale-Variablen

Code: Select all

Optional c1 = ...
Optional c2 = ...
und eine Methode, die 2 Variablen vom Typ Kontakt benötigt

Code: Select all

void match(Contact c1, Contact c2) {...}
und Sie müssen sowohl die optionalen c1- als auch die c2--Variablen entpacken und sie an die Methode match() übergeben.

Meine Frage ist "Welches ist der eleganteste Weg, das in Java 8 zu machen?"

Bisher habe ich zwei Möglichkeiten gefunden:
  • durch die Verwendung von isPresent

    Code: Select all

    if (c1.isPresent() && c2.isPresent()) {
    match(c1.get(), c2.get());
    }
    
  • durch die Verwendung von verschachteltem ifPresent

    Code: Select all

    c1.ifPresent((Contact _c1) -> {
    c2.ifPresent((Contact _c2) -> {
    match(_c1, _c2);
    });
    });
    
Beide Wege sind meiner Meinung nach schrecklich. In Scala kann ich Folgendes tun:

Code: Select all

for {
contact1

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post