เหตุผลที่ดีอย่างหนึ่งที่จะใช้ก็คือมันทำให้ค่าว่างของคุณมีความหมายมาก แทนที่จะส่งคืนค่าว่างที่อาจมีความหมายหลายอย่าง (เช่นข้อผิดพลาดหรือความล้มเหลวหรือว่างเปล่า ฯลฯ ) คุณสามารถใส่ 'ชื่อ' เป็นค่าว่างได้ ดูตัวอย่างนี้:
ให้กำหนด POJO พื้นฐาน:
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;
}
}
ตอนนี้ให้ใช้ประโยชน์จาก POJO ง่ายๆนี้:
public Optional<PersonDetails> getPersonDetailstWithOptional () {
PersonDetails details = null;
if (details == null) {
return Optional.absent();
} else {
return Optional.of(details);
}
}
ตอนนี้ให้หลีกเลี่ยงการใช้ null และทำการตรวจสอบด้วยตัวเลือกเพื่อให้มีความหมาย
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());
}
ดังนั้นในที่สุดมันก็เป็นวิธีที่จะทำให้โมฆะมีความหมายและมีความคลุมเครือน้อยลง