I am trying to understand the ifPresent() method of the Optional API in Java 8.
I have simple logic:
Optional<User> user=... user.ifPresent(doSomethingWithUser(user.get())); But this results in a compilation error:
ifPresent(java.util.functionError:(186, 74) java: 'void' type not allowed here) Of course I can do something like this:
if(user.isPresent()) { doSomethingWithUser(user.get()); } But this is exactly like a cluttered null check.
If I change the code into this:
user.ifPresent(new Consumer<User>() { @Override public void accept(User user) { doSomethingWithUser(user.get()); } }); The code is getting dirtier, which makes me think of going back to the old null check.
Any ideas?