Estoy tratando de comprender el ifPresent()
método de laOptional
API en Java 8.
Tengo una lógica simple:
Optional<User> user=...
user.ifPresent(doSomethingWithUser(user.get()));
Pero esto resulta en un error de compilación:
ifPresent(java.util.functionError:(186, 74) java: 'void' type not allowed here)
Por supuesto que puedo hacer algo como esto:
if(user.isPresent())
{
doSomethingWithUser(user.get());
}
Pero esto es exactamente como un desordenado null
cheque .
Si cambio el código a esto:
user.ifPresent(new Consumer<User>() {
@Override public void accept(User user) {
doSomethingWithUser(user.get());
}
});
El código se está volviendo más sucio, lo que me hace pensar en volver al antiguo null
cheque anterior.
¿Algunas ideas?