নুলপয়েন্টারএক্সেপশনগুলি এড়ানোর জন্য কিছু ডেটা হায়ারার্কি থেকে কোনও মূল্য আনার সময় আমি নিজেকে অনেক বার নাল চেক করতে দেখি, যা আমি ত্রুটিগুলির প্রবণ বলে মনে করি এবং অনেকগুলি বয়লারপ্লেট প্রয়োজন।
আমি একটি খুব সাধারণ রুটিন লিখেছি যা কোনও অবজেক্ট আনার সময় আমাকে নাল চেকিং এড়াতে দেয় ...
public final class NoNPE {
public static <T> T get(NoNPEInterface<T> in) {
try {
return in.get();
} catch (NullPointerException e) {
return null;
}
}
public interface NoNPEInterface<T> {
T get();
}
}
আমি এটি কিছুটা এভাবে ব্যবহার করি ...
Room room = NoNPE.get(() -> country.getTown().getHouses().get(0).getLivingRoom());
উপরের ফলস্বরূপ সমস্ত প্যারেন্ট স্তরের পরীক্ষা না করেই আমার কাছে কোনও রুম অবজেক্ট বা নাল হয়ে যায়।
আপনি উপরেরটি সম্পর্কে কী ভাবেন? আমি কি সমস্যাযুক্ত প্যাটার্ন তৈরি করছি? আপনার মতে এটি করার আরও ভাল উপায় আছে কি?
Option(বা Maybe) মোনাদটি পুনরায় আবিষ্কার করেছেন :)
java.util.Optionalঅনুপস্থিত ডেটা উপস্থাপনের জন্য নাল পরিবর্তে আপনার অ্যাপ্লিকেশনটি পুনরায় ডিজাইনের বিবেচনা করবেন ? এটি আপনার বর্ণনার ক্ষেত্রে এবং যে ক্ষেত্রে কেবল শৃঙ্খলের শেষে ব্যর্থতার শর্তটি ফিরিয়ে দেওয়ার পরিবর্তে আপনি ডিফল্ট ডেটা