এটির ব্যবহারের একটি ভাল কারণ হ'ল এটি আপনার নালগুলিকে খুব অর্থবহ করে তোলে। নাল ফিরিয়ে দেওয়ার পরিবর্তে অনেক কিছুই বোঝাতে পারে (যেমন ত্রুটি, বা ব্যর্থতা, বা খালি ইত্যাদি) আপনি আপনার নালায় একটি 'নাম' রাখতে পারেন। এই উদাহরণটি দেখুন:
একটি বেসিক 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;
}
}
এখন এই সহজ পোজো ব্যবহার করতে দিন:
public Optional<PersonDetails> getPersonDetailstWithOptional () {
PersonDetails details = null;
if (details == null) {
return Optional.absent();
} else {
return Optional.of(details);
}
}
এখন নাল ব্যবহার এড়াতে দিন এবং cheচ্ছিকর সাথে আমাদের চেকগুলি এর অর্থবহ তাই করতে দিন
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());
}
এভাবে শেষ পর্যন্ত নালগুলি অর্থবহ এবং কম অস্পষ্ট করার উপায়।