Fred Clausen:
Je comprends que vous ne pouvez pas revenir d'un ifPresent()
si cet exemple ne fonctionne pas:
public boolean checkSomethingIfPresent() {
mightReturnAString().ifPresent((item) -> {
if (item.equals("something")) {
// Do some other stuff like use "something" in API calls
return true; // Does not compile
}
});
return false;
}
Où mightReturnAString()
pourrait retourner une chaîne valide ou une option vide. Ce que je l' ai fait des œuvres est:
public boolean checkSomethingIsPresent() {
Optional<String> result = mightReturnAString();
if (result.isPresent()) {
String item = result.get();
if (item.equals("something") {
// Do some other stuff like use "something" in API calls
return true;
}
}
return false;
}
qui est plus longue et ne se sent pas très différent de simplement vérifier les valeurs nulles en premier lieu. Je me sens comme il doit y avoir une façon plus succincte en utilisant en option.
aussi:
Je pense que tout ce que vous cherchez est tout simplement filter
et vérifier la présence alors:
return result.filter(a -> a.equals("something")).isPresent();