আমি @ নোজব্রাইনকে ক্রেডিট দিচ্ছি কারণ আমি "নাল-মান" সম্পর্কে জানতাম না তবে আমি নাল মানগুলি সম্পূর্ণরূপে ব্যবহার করা এড়াতে পছন্দ করি কারণ বিশেষত nullকোনও সম্পত্তি ফাইলটিতে প্রতিনিধিত্ব করা তার পক্ষে কঠিন ।
তবে এখানে নাল আউট ব্যবহারের বিকল্প রয়েছে null-valueযাতে এটি যে কোনও সম্পত্তি প্লেসোল্ডারের সাথে কাজ করবে।
public class MyObject {
private String value;
@Value("${stuff.value:@null}")
public void setValue(String value) {
if ("@null".equals(value)) this.value = null;
else this.value = value;
}
}
ব্যক্তিগতভাবে আমি আমার পথটিকে পছন্দ করি কারণ পরে সম্ভবত আপনি stuff.valueএকটি কমা-বিচ্ছিন্ন-মান হতে চান বা এনুমের পক্ষে সুইচটি সহজ। এটি ইউনিট পরীক্ষা করাও সহজ :)
সম্পাদনা: এনাম ব্যবহারের বিষয়ে আপনার মন্তব্য এবং নাল ব্যবহার না করার বিষয়ে আমার মতামতের ভিত্তিতে।
@Component
public class MyObject {
@Value("${crap:NOTSET}")
private Crap crap;
public enum Crap {
NOTSET,
BLAH;
}
}
উপরেরটি আমার পক্ষে কাজ করে। আপনি নাল এড়ানো। যদি আপনার সম্পত্তি ফাইলগুলি সুস্পষ্টভাবে সেট করতে চায় যে তারা এটি পরিচালনা করতে চায় না তবে আপনি করুন ( তবে আপনাকে এটি নির্দিষ্ট করতে হবে না কারণ এটি নোটসেটের ডিফল্ট হবে )।
crap=NOTSET
nullখুব খারাপ এবং এর চেয়ে আলাদা NOTSET। এর অর্থ বসন্ত বা ইউনিট পরীক্ষা সেট করে দেয়নি তাই আইএমএইচও পার্থক্য রয়েছে। আমি সম্ভবত সম্ভবত সেটার নোটেশনটি ব্যবহার করব (পূর্ববর্তী উদাহরণ) ইউনিট পরীক্ষায় তার সহজ হিসাবে (ব্যক্তিগত ভেরিয়েবলগুলি ইউনিট পরীক্ষায় সেট করা শক্ত)।