Saya mencoba memahami ifPresent()
metode Optional
API di Java 8.
Saya memiliki logika sederhana:
Optional<User> user=...
user.ifPresent(doSomethingWithUser(user.get()));
Tetapi ini menghasilkan kesalahan kompilasi:
ifPresent(java.util.functionError:(186, 74) java: 'void' type not allowed here)
Tentu saja saya bisa melakukan sesuatu seperti ini:
if(user.isPresent())
{
doSomethingWithUser(user.get());
}
Tapi ini persis seperti null
cek yang berantakan .
Jika saya mengubah kodenya menjadi ini:
user.ifPresent(new Consumer<User>() {
@Override public void accept(User user) {
doSomethingWithUser(user.get());
}
});
Kode menjadi semakin kotor, yang membuat saya berpikir untuk kembali ke null
cek lama .
Ada ide?