হুঁশিয়ার!
রান কোডে জোরগুলি সরিয়ে ফেলা হয় যদি না আপনি আপনার কোডটি সংকলনের সময় স্পষ্টতই " দৃ as়তা সক্ষম করুন" নির্দিষ্ট করে থাকেন। জাভা অ্যাসারেন্সগুলি উত্পাদন কোডে ব্যবহার করা হবে না এবং এটি ব্যক্তিগত পদ্ধতিতে সীমাবদ্ধ করা উচিত ( ব্যতিক্রম প্রতিবেদন দেখুন ), যেহেতু ব্যক্তিগত পদ্ধতিগুলি কেবল বিকাশকারীদের দ্বারা জানা এবং ব্যবহৃত হবে বলে আশা করা হচ্ছে। এছাড়াও AssertionErrorassert নিক্ষেপ করবে যা প্রসারিত হয় না এবং যা সাধারণত নির্দেশ করে যে আপনার খুব অস্বাভাবিক ত্রুটি রয়েছে (যেমন "আউটআফমিউরিওর" যা পুনরুদ্ধার করা শক্ত, তাই না?) আপনি চিকিত্সা করতে সক্ষম হবেন বলে আশা করা যায় না।ErrorException
"দৃ enable়তাগুলি সক্ষম করুন" পতাকাটি সরান, এবং একটি ডিবাগারের সাথে পরীক্ষা করুন এবং আপনি দেখতে পাবেন যে আপনি অবৈধআর্গুমেন্টএক্সেপশন থ্রো কলটিতে পদক্ষেপ নেবেন না ... যেহেতু এই কোডটি সংকলিত হয়নি (আবার "যখন" এ "সরানো হবে)
সর্বজনীন / সুরক্ষিত পদ্ধতির জন্য দ্বিতীয় নির্মাণটি ব্যবহার করা ভাল, এবং আপনি যদি কোডের এক লাইনে এমন কিছু করতে চান তবে আমার জানা কমপক্ষে একটি উপায় রয়েছে। আমি ব্যক্তিগতভাবে ব্যবহার স্প্রিং ফ্রেমওয়ার্ক এর Assertবর্গ আর্গুমেন্ট ও ব্যর্থতার উপর নিক্ষেপ "IllegalArgumentException" চেক করার জন্য কয়েক পদ্ধতি রয়েছে। মূলত, আপনি যা করেন তা হ'ল:
Assert.notNull(obj, "object was null");
... যা আপনার দ্বিতীয় উদাহরণে লিখেছিলেন ঠিক একই কোডটি কার্যকর করবে। যেমন কয়েক অন্যান্য দরকারী পদ্ধতি আছে hasText, hasLengthসেখানে।
আমি প্রয়োজনের চেয়ে বেশি কোড লেখা পছন্দ করি না, তাই আমি যখন খুশি লিখি যখন আমি লিখিত লাইনের সংখ্যা 2 (2 লাইন> 1 লাইন) দ্বারা হ্রাস করি :-)
obj.hashCode()পরিবর্তে আমি একটি সহজ পছন্দ করি ;-)