Estou tentando entender o ifPresent()
método da Optional
API em Java 8.
Eu tenho uma lógica simples:
Optional<User> user=...
user.ifPresent(doSomethingWithUser(user.get()));
Mas isso resulta em um erro de compilação:
ifPresent(java.util.functionError:(186, 74) java: 'void' type not allowed here)
Claro que posso fazer algo assim:
if(user.isPresent())
{
doSomethingWithUser(user.get());
}
Mas isso é exatamente como um null
cheque desordenado .
Se eu mudar o código para este:
user.ifPresent(new Consumer<User>() {
@Override public void accept(User user) {
doSomethingWithUser(user.get());
}
});
O código está ficando mais sujo, o que me faz pensar em voltar ao null
cheque antigo .
Alguma ideia?