জাভা ৮ থেকে ফাংশন ফিচারের সাথে অপশনাল যুক্ত করা হয়েছে। অপশনাল খুবই পাওয়ারফুল একটা ফিচার বলে মনে করি। কিভাবে অপশনাল এর সঠিক ব্যবহার করা যায় তার কিছু উদাহরণ দেয়া হলো।
১। কখনো অপশনালএ নাল এসাইন করা উচিত না। কারণ নাল হ্যান্ডেল করার জন্যই অপশনাল। এর ভেতরে হয় ফাঁকা বা কোন ভ্যালু থাকে। অপশনাল কে একটা ফাঁকা বক্সের সাথে তুলনা করা যেতে পারে।
মন্দ কোড
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
ভাল কোড
public Optional