Java 8'de API'nin ifPresent()
yöntemini anlamaya çalışıyorum Optional
.
Basit mantığım var:
Optional<User> user=...
user.ifPresent(doSomethingWithUser(user.get()));
Ancak bu, bir derleme hatasıyla sonuçlanır:
ifPresent(java.util.functionError:(186, 74) java: 'void' type not allowed here)
Tabii ki bunun gibi bir şey yapabilirim:
if(user.isPresent())
{
doSomethingWithUser(user.get());
}
Ancak bu tam olarak dağınık bir null
çek gibi .
Kodu şununla değiştirirsem:
user.ifPresent(new Consumer<User>() {
@Override public void accept(User user) {
doSomethingWithUser(user.get());
}
});
Kod gittikçe kirleniyor ve bu da bana eski null
çeke dönmeyi düşündürüyor .
Herhangi bir fikir?