জাভা ৮ থেকে ফাংশন ফিচারের সাথে অপশনাল যুক্ত করা হয়েছে। অপশনাল খুবই পাওয়ারফুল একটা ফিচার বলে মনে করি। কিভাবে অপশনাল এর সঠিক ব্যবহার করা যায় তার কিছু উদাহরণ দেয়া হলো। 

১। কখনো অপশনালএ নাল এসাইন করা উচিত না। কারণ নাল হ্যান্ডেল করার জন্যই অপশনাল। এর ভেতরে হয় ফাঁকা বা কোন ভ্যালু থাকে। অপশনাল কে একটা ফাঁকা বক্সের সাথে তুলনা করা যেতে পারে।

মন্দ কোড

public Optional

fetchAddress() { Optional
emptyAddress = null; }

ভালো কোড

public Optional

fetchAddress() { Optional
emptyAddress = Optional.empty(); }

২। সরাসরি অপশনাল অবজেক্টের গেট কল করা উচিত না। আগে isPresent চেক করে নেয়াউচিত

মন্দ কোড

Optional

optionalAddress= user.address(); Address address = optionalAddress.get();

ভালো কোড

Optional

optionalAddress = user.address(); if (optionalAddress.isPresent()) { Address address = optionalAddress.get(); } else { // Do whatever }

৩। Optional.of(object) এবং Optional.ofNullable(object) দুইটা দুই জিনিস।

- Optional.of(object) হচ্ছে  object নাল না বা যদি নাল হয়ে থাকে তাহলে এক্সেপশন দিবে।

- Optional.ofNullable(object) হচ্ছে অবজেক্ট নাল হলেও কোন এক্সেপশন দিবে না.

মন্দ কোড

public Optional fetchItemName(long id) { String itemName = null; // ভ্যালু যেটা নাল হতে পারে return Optional.of(itemName); }

ভাল কোড

public Optional fetchItemName(long id) { String itemName = null; // ভ্যালু যেটা নাল হতে পারে return Optional.ofNullable(itemName); }

Share