by Anonymous » 02 Jan 2025, 00:04
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:
Ich habe das folgende Problem. Nehmen wir an, Sie haben zwei optionale-Variablen
[code]Optional c1 = ...
Optional c2 = ...
[/code]
und eine Methode, die 2 Variablen vom Typ Kontakt benötigt
[code]void match(Contact c1, Contact c2) {...}
[/code]
und Sie müssen sowohl die optionalen c1- als auch die c2--Variablen entpacken und sie an die Methode match() übergeben.
Meine Frage ist [b]"Welches ist der eleganteste Weg, das in Java 8 zu machen?"[/b]
Bisher habe ich zwei Möglichkeiten gefunden:
[list]
[*]durch die Verwendung von isPresent
[code]if (c1.isPresent() && c2.isPresent()) {
match(c1.get(), c2.get());
}
[/code]
[*]durch die Verwendung von verschachteltem ifPresent
[code]c1.ifPresent((Contact _c1) -> {
c2.ifPresent((Contact _c2) -> {
match(_c1, _c2);
});
});
[/code]
[/list]
Beide Wege sind meiner Meinung nach schrecklich. In Scala kann ich Folgendes tun:
[code]for {
contact1