আমি এই প্রশ্নটি দেখেছি তবে assert
কীওয়ার্ডটির ব্যবহার সম্পর্কে আরও কয়েকটি প্রশ্ন রয়েছে । আমি ব্যবহার সম্পর্কে আরও কয়েকটি কোডারের সাথে বিতর্ক করছি assert
। এই ব্যবহারের ক্ষেত্রে, এমন একটি পদ্ধতি ছিল যা যদি কিছু পূর্বশর্তগুলি পূরণ করা হয় তবে তা বাতিল করতে পারে। আমি যে কোডটি লিখেছি সে পদ্ধতিটি কল করে, তারপরে দৃser়ভাবে দাবি করে যে এটি নালায় ফিরে আসে না এবং ফিরে আসা অবজেক্টটি ব্যবহার করে চালিয়ে যায়।
উদাহরণ:
class CustomObject {
private Object object;
@Nullable
public Object getObject() {
return (object == null) ? generateObject() : object;
}
}
এখন কল্পনা করুন আমি এটি এটি ব্যবহার করি:
public void useObject(CustomObject customObject) {
object = customObject.getObject();
assert object != null;
// Do stuff using object, which would throw a NPE if object is null.
}
আমাকে বলা হয়েছিল যে আমি assert
এগুলি সরাতে হবে , সেগুলি কখনই উত্পাদন কোডে ব্যবহার করা উচিত নয় , কেবল পরীক্ষায় ব্যবহার করা উচিত। এটা কি সত্যি?
Objects.requireNonNull
জাভা 8-তে প্রবর্তনের পরে আর প্রয়োজন নেই )।
-ea
বা সমতুল্য মাধ্যমে আপনাকে তাদের স্পষ্টভাবে সক্ষম করতে হবে ।