그것을 사용하는 한 가지 좋은 이유는 null을 매우 의미있게 만드는 것입니다. 많은 것을 의미 할 수있는 null을 반환하는 대신 (예 : 오류, 실패 또는 비어 있음) null에 '이름'을 넣을 수 있습니다. 이 예를보십시오 :
기본 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 사용을 피하고 Optional로 확인하여 의미있는
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());
}
따라서 결국 null을 의미 있고 모호하지 않게 만드는 방법입니다.