Sto cercando di capire il ifPresent()
metodo diOptional
dell'API in Java 8.
Ho una logica semplice:
Optional<User> user=...
user.ifPresent(doSomethingWithUser(user.get()));
Ma questo si traduce in un errore di compilazione:
ifPresent(java.util.functionError:(186, 74) java: 'void' type not allowed here)
Ovviamente posso fare qualcosa del genere:
if(user.isPresent())
{
doSomethingWithUser(user.get());
}
Ma questo è esattamente come un null
assegno disordinato .
Se cambio il codice in questo:
user.ifPresent(new Consumer<User>() {
@Override public void accept(User user) {
doSomethingWithUser(user.get());
}
});
Il codice si sta sporcando, il che mi fa pensare di tornare al vecchio null
controllo.
Qualche idea?