Ich versuche die ifPresent()
Methode der Optional
API in Java 8 zu verstehen .
Ich habe eine einfache Logik:
Optional<User> user=...
user.ifPresent(doSomethingWithUser(user.get()));
Dies führt jedoch zu einem Kompilierungsfehler:
ifPresent(java.util.functionError:(186, 74) java: 'void' type not allowed here)
Natürlich kann ich so etwas machen:
if(user.isPresent())
{
doSomethingWithUser(user.get());
}
Aber das ist genau wie ein überfüllter null
Scheck.
Wenn ich den Code in diesen ändere:
user.ifPresent(new Consumer<User>() {
@Override public void accept(User user) {
doSomethingWithUser(user.get());
}
});
Der Code wird schmutziger, was mich daran erinnert, zum alten null
Scheck zurückzukehren.
Irgendwelche Ideen?