Fred Clausen:
Yo entiendo que no pueda regresar de una ifPresent()
por lo que este ejemplo no funciona:
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;
}
¿Dónde mightReturnAString()
podría devolver una cadena válida o un opcional vacía. Lo que he hecho es que las obras:
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;
}
que es más largo y no se siente muy diferente a simplemente la comprobación de valores nulos en el primer lugar. Siento que debe haber una manera más sucinta usando opcional.
también:
Creo que todo lo que está buscando es simplemente filter
y comprobar la presencia continuación:
return result.filter(a -> a.equals("something")).isPresent();