এই তিনটি টীকাগুলির মধ্যে পার্থক্যকে আলাদা করে এমন একটি সংক্ষিপ্তসার আমি খুঁজে পেতে সক্ষম হতে পারছি বলে মনে হচ্ছে না।
এই তিনটি টীকাগুলির মধ্যে পার্থক্যকে আলাদা করে এমন একটি সংক্ষিপ্তসার আমি খুঁজে পেতে সক্ষম হতে পারছি বলে মনে হচ্ছে না।
উত্তর:
@NotNull
: চারসেকেন্স, সংগ্রহ, মানচিত্র বা অ্যারে অবজেক্টটি শূন্য নয় , তবে খালি থাকতে পারে।
@NotEmpty
: চারসেকেন্স, সংগ্রহ, মানচিত্র বা অ্যারে অবজেক্ট নাল এবং আকার নয়> 0 ।
@NotBlank
: স্ট্রিংটি নাল নয় এবং ছাঁটাই দৈর্ঘ্য শূন্যের চেয়ে বড় ।
আপনাকে বুঝতে সাহায্য করার জন্য, আসুন কীভাবে এই সীমাবদ্ধতাগুলি সংজ্ঞায়িত করা হয় এবং পরিচালনা করা হয় (আমি সংস্করণ 4.1 ব্যবহার করছি):
@NotNull
বাধ্যতা হিসাবে সংজ্ঞায়িত করা হয়:
@Constraint(validatedBy = {NotNullValidator.class})
এই শ্রেণীর একটি isValid
পদ্ধতি রয়েছে যেমন:
public boolean isValid(Object object, ConstraintValidatorContext constraintValidatorContext) {
return object != null;
}
@NotEmpty
বাধ্যতা হিসাবে সংজ্ঞায়িত করা হয়:
@NotNull
@Size(min = 1)
সুতরাং এই সীমাবদ্ধতা উপরের সীমাবদ্ধতাটি ব্যবহার করে এবং যার সংজ্ঞাটি অবজেক্টের উপর ভিত্তি করে পৃথক হয় তবে স্ব-বর্ণনামূলক হওয়া উচিত। @NotNull
@Size
পরিশেষে, @NotBlank
সীমাবদ্ধতাটি হিসাবে সংজ্ঞায়িত করা হয়:
@NotNull
@Constraint(validatedBy = {NotBlankValidator.class})
সুতরাং এই সীমাবদ্ধতা এছাড়াও সীমাবদ্ধতা ব্যবহার করে @NotNull
, তবে নটব্ল্যাঙ্কভালিডেটর শ্রেণীর সাথেও সীমাবদ্ধ। এই শ্রেণীর একটি isValid
পদ্ধতি রয়েছে যেমন:
if ( charSequence == null ) { //curious
return true;
}
return charSequence.toString().trim().length() > 0;
মজার বিষয় হল, স্ট্রিংটি নাল থাকলে এই পদ্ধতিটি সত্য করে, তবে মিথ্যা এবং যদি কেবল ছাঁটাইযুক্ত স্ট্রিংয়ের দৈর্ঘ্য 0 হয় তবে এটি ঠিক যে এটি নাল হয়ে থাকলে এটি সত্য হবে কারণ আমি উল্লেখ করেছি, @NotEmpty
সংজ্ঞাটিরও প্রয়োজন @NotNull
।
এখানে কিছু উদাহরণ আছে:
স্ট্রিং নাম = নাল;
@NotNull
: মিথ্যা
@NotEmpty
: মিথ্যা
@NotBlank
: মিথ্যা
স্ট্রিং নাম = "";
@NotNull
: সত্য
@NotEmpty
: মিথ্যা
@NotBlank
: মিথ্যা
স্ট্রিং নাম = "";
@NotNull
: সত্য
@NotEmpty
: সত্য
@NotBlank
: মিথ্যা
স্ট্রিং নাম = "দুর্দান্ত উত্তর!";
@NotNull
: সত্য
@NotEmpty
: সত্য
@NotBlank
: সত্য
আমি নীচের লিঙ্কটিতে ব্যাখ্যাটি পছন্দ করেছি: http://www.itprogrammingtutorials.com/2015/java/hibernate/hibernate-ediaator-diff-notblank-notempty/
@ নটনুল: সামগ্রীটি উপেক্ষা করে মানটি শূন্য নয় কিনা তা পরীক্ষা করে
@ নোটএম্পটি: মানটি নাল বা খালি নয় কিনা তা পরীক্ষা করে। যদি এটির খালি জায়গা থাকে তবে এটি এটি খালি নয় হিসাবে অনুমতি দেবে।
@ নটব্ল্যাঙ্ক: মানটি নাল বা খালি নয় কিনা তা পরীক্ষা করে প্রথমে মানটি ছাঁটাচ্ছে। এর অর্থ এই যে এটি খালি জায়গাগুলি অনুমতি দেবে না।
সুতরাং, আপনি যদি যাচাই করতে চান যে কোনও ক্ষেত্রটি নাল নয় তবে এটিতে কেবল খালি স্থান নেই, তবে পাঠ্য রয়েছে, আপনার @ নটব্ল্যাঙ্ক ব্যবহার করা উচিত।
@NotNull:
একটি সীমাবদ্ধ চারসেকেন্স, সংগ্রহ, মানচিত্র বা অ্যারে যতক্ষণ তা বাতিল নয় ততক্ষণ বৈধ, তবে এটি খালি থাকতে পারে@NotEmpty:
একটি সীমাবদ্ধ চরসেকেন্স, সংগ্রহ, মানচিত্র, বা অ্যারে যতক্ষণ তা বাতিল নয় এবং এর আকার / দৈর্ঘ্য শূন্যের চেয়ে বেশি ততক্ষণ বৈধ।@NotBlank:
একটি বাধা স্ট্রিং যতক্ষণ না এটি নাল না এবং ছাঁটা দৈর্ঘ্য শূন্যের চেয়ে বেশি ততক্ষণ বৈধ।