দুটি কোডের উদাহরণ নিন:
if(optional.isPresent()) {
//do your thing
}
if(variable != null) {
//do your thing
}
যতদূর আমি সবচেয়ে সুস্পষ্ট পার্থক্যটি বলতে পারি ptionচ্ছিক একটি অতিরিক্ত অবজেক্ট তৈরি করা প্রয়োজন।
তবে, অনেকে বিকল্পগুলি অবলম্বন করতে শুরু করেছেন। নাল চেক বনাম বিকল্পগুলি ব্যবহার করার সুবিধা কী?
if
বিবৃতি খুব এ গত এক দশকে, এবং সবাই এখন একসংখ্যা বিমূর্ত এবং lambdas ব্যবহার করছে।
if(x.isPresent) fails_on_null(x.get)
আপনার মধ্যে টাইপ সিস্টেমটি প্রস্থান করে এবং গ্যারান্টিটি রাখতে হবে যে শর্ত এবং ফাংশন কলের মধ্যে (স্বীকারোক্তিপূর্ণ সংক্ষিপ্ত) দূরত্বের পরে কোডটি "আপনার মাথার মধ্যে" ভঙ্গ হবে না। ইন optional.ifPresent(fails_on_null)
টাইপ সিস্টেম আপনার জন্য এই গ্যারান্টি তোলে, এবং আপনি চিন্তা করতে হবে না।
Optional.ifPresent
(এবং বিভিন্ন অন্যান্য জাভা কনস্ট্রাক্টস) ব্যবহার করে জাভার প্রধান ত্রুটি হ'ল আপনি কেবল কার্যকরভাবে চূড়ান্ত পরিবর্তনশীলগুলি সংশোধন করতে পারবেন এবং চেক করা ব্যতিক্রমগুলি ছুঁড়ে ফেলতে পারবেন না। ifPresent
দুর্ভাগ্যক্রমে এটি প্রায়শই এড়াতে যথেষ্ট কারণ ।