تعرفك هذه المقالة على التأكيدات في مفهوم بسيط ولكنه مهم ومتابعته بعرض برمجي. سيتم تغطية المؤشرات التالية في هذه المقالة ،
- لماذا تحتاج تأكيدات؟
- تمكين وتعطيل تأكيدات Java
- كيفية استخدام تأكيدات Java؟
- أين لا تستخدم التأكيد؟
- استخدام التأكيدات للعمليات
فلنبدأ إذن ،
هل تريد اختبار ما إذا كان الافتراض صحيحًا في برنامجك؟ حسنًا ، يمكنك فعل ذلك باستخدام عبارات التأكيد في Java. يمكنك استخدام كلمة التأكيد لإنشاء تأكيدات تتيح لك اختبار افتراضاتك في برنامج.
لنأخذ مثالا. لا يمكن أن يكون عمر الموظف في شركة ABC رقمًا سالبًا. يمكنك استخدام تأكيد لهذا للتأكد من أن عمر الموظف ليس رقمًا سالبًا.
لنأخذ مثالاً آخر. إذا كانت طريقتك تحسب سرعة الجسيم ، فإن افتراضك هو أن سرعة الجسيم أقل من سرعة الضوء. لذلك ، لاختبار هذا الافتراض ، يمكنك استخدام عبارات التأكيد في Java.
النحو
هناك نوعان من أشكال بيان التأكيد:
تأكيد التعبير 1
هنا،
التعبير 1 هو تعبير منطقي.
تأكيد التعبير 1: التعبير 2
في هذا النموذج ، يمثل التعبير 1 تعبيرًا منطقيًا ، والتعبير 2 له قيمة ستُقارن بالتعبير 1.
الآن ، قد تسأل - ما النموذج الذي تختاره لبرامجك؟ يمكنك استخدام النموذج الثاني عندما يحتوي برنامجك على معلومات إضافية قد تساعد في تشخيص الأخطاء أو حالات الفشل في البرنامج.
قبل الإصدار 1.4 من جافا ، كان من الممكن استخدام الكلمة الأساسية 'تأكيد' لتسمية المتغيرات والأساليب والوظائف وغير ذلك الكثير. مع الإصدارات الأحدث من JVM ، يمكن أن يتسبب ذلك في حدوث تضارب في التسمية - لذلك عليك أن تكون حريصًا قليلاً على هذه الحقيقة.
المضي قدمًا في هذه المقالة حول التأكيدات في Java
ما هي الرموز المميزة في جافا
لماذا تحتاج تأكيدات؟
قد تعتقد أن عبارة التأكيد في Java قد تكون غير ضرورية. قد تجده غير ضروري للبرامج الصغيرة. ولكن عندما يتعلق الأمر بالبرامج الكبيرة ذات المنطق المعقد ، فإن عبارات التأكيد هذه تكون مفيدة.
الاستخدام الأساسي لعبارات التأكيد هو التصحيح والاختبار. إذا كان هناك أي فشل في عبارة التأكيد ، فسيقوم JVM بإلقاء خطأ يسمى AssertionError. كما ترى ، يوفر هذا طريقة فعالة لاكتشاف الأخطاء وتصحيحها في البرنامج.
بالإضافة إلى التصحيح والاختبار ، فإن بيان التأكيد يجعل شفرتك أكثر قابلية للقراءة. لنأخذ مثالاً:
سيساعدنا الكود أدناه في التحقق من بعض الشروط التي يمكن أن تمنع التطبيق من العمل بشكل صحيح.
Connection conn = getConnection () if (conn == null) {throw new RuntimeException ('Connection is null')}
باستخدام بيان تأكيد واحد ، يمكنك بشكل أساسي التخلص من عبارة 'if and throw' كما هو موضح أدناه:
اتصال conn = getConnection () تأكيد conn! = null
المضي قدمًا في هذه المقالة حول التأكيدات في Java
تمكين وتعطيل تأكيدات Java
نظرًا لأن تأكيدات Java تستخدم الكلمة الأساسية التأكيد ، فلن تحتاج إلى استيراد حزم أو مكتبات. كما ذكرنا سابقًا ، يمكنك استخدام الكلمة الأساسية assert للمتغيرات والطرق والوظائف. من أجل التوافق مع الإصدارات السابقة ، ولتجنب حدوث تضارب محتمل في التسمية ، يقوم JVM بتعطيل التحقق من صحة التأكيد افتراضيًا. يجب تمكين التأكيدات بشكل صريح. يمكنك القيام بذلك باستخدام وسيطة سطر الأوامر (-enableassertions) ، أو باستخدام اختصارها (-ea).
دعنا نفكر في بعض الأمثلة:
جافا -ea com.baeldung.assertion.Assertion
ما سبق يتيح التأكيد للفئات.
جافا -ea: com.baeldung.assertion… com.baeldung.assertion.Assertion
يمكنك أيضًا تمكين التأكيدات لحزم وفئات معينة. يظهر هذا في المثال أعلاه حيث قمنا بتمكين التأكيدات للفئات في حزمة com.baeldung.assertion.
الآن بعد أن تعلمنا كيفية تمكين التأكيدات ، دعنا نرى كيف يمكننا تعطيلها. تمامًا مثل تمكين التأكيدات ، يمكن إجراء التعطيل باستخدام وسيطة سطر الأوامر (-تعطيل التأكيد) أو اختصارها (-da) لحزم وفئات معينة.
المضي قدمًا في هذه المقالة حول التأكيدات في Java
كيفية استخدام تأكيدات Java؟
طول مصفوفة جافا سكريبت
هناك شيئان تحتاجهما لتنفيذ التأكيدات في برنامجك - الكلمة الأساسية التأكيدية والشرط المنطقي. لنأخذ مثالاً مع مقتطف الشفرة:
إعداد الفراغ العام () {Connection conn = getConnection () تأكيد conn! = null}
يمكنك أيضًا استخدام سلسلة للتأكيدات أعلاه كما هو موضح أدناه:
إعداد الفراغ العام () {Connection conn = getConnection () تأكيد conn! = null: 'Connection is null'}
في مقتطف الشفرة أعلاه ، إذا كان هناك AssertionError ، فسيتم استخدام السلسلة لإنشاء الخطأ.
في كلتا الحالتين المذكورتين أعلاه ، يتحقق الكود مما إذا كان الاتصال بمصدر خارجي يُرجع قيمة غير فارغة. إذا كانت القيمة خالية ، فسيقوم JVM بإلقاء خطأ AssertionError تلقائيًا.
في المثال الثاني ، تظهر السلسلة التي استخدمناها في تتبع المكدس عندما يكون هناك خطأ AssertionError. ستكون هذه المعلومات الإضافية مفيدة عندما تحاول تصحيح أخطاء البرنامج. ستساعدك هذه الرسائل التفصيلية في إصلاح خطأ كان من شأنه أن يتسبب في فشل التأكيد. لذلك ، عند تشغيل الفصل مع تمكين التأكيدات ، ستكون النتيجة مماثلة لتلك الموجودة أدناه:
استثناء في سلسلة الرسائل 'main' java.lang.AssertionError: الاتصال لاغٍ
في com.baeldung.assertion.Assertion.setup (Assertion.java:15)
في com.baeldung.assertion.Assertion.main (Assertion.java:10)
لنفكر في مثال بسيط:
import java.util.Scanner class AssertionExample {public static void main (String args []) {Scanner scanner = new Scanner (System.in) System.out.print ('Enter your age') int value = scanner.nextInt () تأكيد القيمة> = 18: 'غير صالح' System.out.println ('القيمة هي' + القيمة)}}
الآن وبعد أن أصبح لديك الرمز في متناول اليد ، فقد حان الوقت لتشغيله. نظرًا لأنه يتم تعطيل التأكيدات افتراضيًا ، فسيتعين عليك تمكينها.
يمكنك تجميع الكود أعلاه باستخدام ما يلي: javac AssertionExample.java
يمكنك بعد ذلك تشغيله باستخدام ما يلي: java -ea AssertionExample
ال انتاج للكود أعلاه هو:
أدخل عمرك 11
استثناء في موضوع java.lang.AssertionError 'الرئيسي': غير صحيح
كما ترى ، قدمنا 11 كقيمة للعمر. البرنامج لا يتعامل معها كقيمة مشروعة. لذلك ، سترى خطأ AssertionError.
المضي قدمًا في هذه المقالة حول التأكيدات في Java
أين لا تستخدم التأكيد؟
في حين أنه من الجيد أن يكون لديك تأكيدات في المواقف التي تتضمن الثوابت الداخلية ، وثوابت التحكم في التدفق ، والشروط المسبقة ، والشروط اللاحقة ، وثوابت الصنف ، هناك بعض المواقف التي لا ينبغي فيها استخدام التأكيدات.
ما هو awt في جافا
دعنا نستكشف المزيد عن هذه:
لتدقيق الحجج في الطرق العامة
يجب أن تفهم أن التحقق من الحجة هو جزء من المواصفات أو العقود المنشورة لطريقة ما. يجب اتباع هذه بغض النظر عما إذا تم تمكين التأكيدات أم لا.
المضي قدمًا في هذه المقالة حول التأكيدات في Java
استخدام التأكيدات للعمليات
بشكل افتراضي ، يتم تعطيل التأكيدات. يجب ألا يفترض برنامجك أن التعبير المنطقي في عبارة التوكيد سيتم تقييمه دائمًا.
لنأخذ مثالاً على كيفية تأثير ذلك على برنامجك. لنفترض أنك تريد إزالة جميع العناصر الفارغة من قائمة الأسماء ، وأنت تدرك أن قائمتك تحتوي على عناصر خالية.
تأكيد الأسماء إزالة (خالية)
سيعمل مقتطف الشفرة أعلاه إذا تم تمكين التأكيدات. ولكن ، ستفشل إذا تم تعطيل التأكيدات لأن الكود لن يزيل أي عناصر فارغة. لإصلاح هذه المشكلة ، يمكنك استخدام مقتطف الشفرة أدناه في برنامجك:
قيمة منطقية nullsRemoved = names.remove (خالية)
تأكيد القيم الخالية
سيؤدي مقتطف الشفرة أعلاه إلى إزالة القيم الخالية ، حتى إذا تم تعطيل التأكيدات.
الآن بعد تنفيذ برنامج Java أعلاه ، ستكون قد فهمت 'التأكيدات في Java'. وهكذا وصلنا إلى نهاية هذه المقالة حول 'Quicksort in Java'. إذا كنت ترغب في معرفة المزيد ،تفحص ال بواسطة Edureka ، شركة تعليمية موثوقة عبر الإنترنت. تم تصميم دورة تدريب وإصدار شهادات Java J2EE و SOA من Edureka لتدريبك على مفاهيم Java الأساسية والمتقدمة جنبًا إلى جنب مع العديد من أطر Java مثل Hibernate & Spring.
لديك سؤال لنا؟ يرجى ذكر ذلك في قسم التعليقات في هذه المدونة وسنعاود الاتصال بك في أقرب وقت ممكن.