Salah satu alasan bagus untuk menggunakannya adalah karena itu membuat null Anda sangat berarti. Alih-alih mengembalikan null yang bisa berarti banyak hal (seperti kesalahan, atau kegagalan, atau kosong, dll), Anda dapat memasukkan 'nama' ke null Anda. Lihat contoh ini:
mari kita tentukan POJO dasar:
class PersonDetails {
String person;
String comments;
public PersonDetails(String person, String comments) {
this.person = person;
this.comments = comments;
}
public String getPerson() {
return person;
}
public String getComments() {
return comments;
}
}
Sekarang mari kita gunakan POJO sederhana ini:
public Optional<PersonDetails> getPersonDetailstWithOptional () {
PersonDetails details = null;
if (details == null) {
return Optional.absent();
} else {
return Optional.of(details);
}
}
Sekarang mari kita hindari penggunaan null dan lakukan pemeriksaan dengan Opsional sehingga berarti
public void checkUsingOptional () {
Optional<PersonDetails> details = getPersonDetailstWithOptional();
if (details.isPresent()) {
PersonDetails details = details.get();
logger.info(details);
} else {
logger.info("object was null");
}
assertFalse(details.isPresent());
}
jadi pada akhirnya ini adalah cara untuk membuat nulls bermakna, & mengurangi ambiguitas.