ভালো কোড মন্দ কোড: জাভা পার্ট - 2

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

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

১. কখনো অপশনালে নাল অ্যাসাইন করা উচিত নয়

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

মন্দ কোড:

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): অবজেক্ট নাল না হলে কাজ করে, কিন্তু যদি নাল হয় তাহলে এক্সেপশন দেয়।
  • 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