نصائح Java وأفضل طريقة لتجنب NullponintException في تطبيق Java
في تطبيق Java ، يعد NullPonintException (استثناء مؤشر NULL) أفضل حل (مشكلة). في الوقت نفسه ، يعد المؤشر الفارغ أيضًا مفتاح كتابة التعليمات البرمجية القوية والسلاسة. تنطبق عبارة "الوقاية أفضل من العلاج" أيضًا على NullponintException غير السار. من خلال تطبيق تقنيات الترميز الدفاعي والاتفاقيات التالية بين أجزاء متعددة ، يمكنك تجنب NullPointException إلى حد كبير. يمكن أن تقلل نصائح Java التالية من الصور! = رمز فارغ لهذا النوع من الشيكات. كمبرمج Java ذي الخبرة ، قد تدرك أن بعض هذه التقنيات تستخدم في بعض المشاريع. ولكن بالنسبة لطلاب الجامعات في السنة الأولى والمطورين المتوسطين ، فهذه فرصة تعليمية رائعة.
هذه بعض التقنيات البسيطة التي يسهل تعلمها ، لكنها مهمة حقًا لجودة الكود والقوة. في تجربتي ، لعبت الخدعة الأولى دورًا كبيرًا في تحسين جودة الكود.
1) استدعاء متساو
عادة ، يتم استدعاء equals () على السلسلة غير الفارغة بالفعل. نظرًا لأن طريقة متساوية () متماثلة ، فإن الاتصال A.equal () يعادل استدعاء B.equal () ، وهذا هو السبب في أن الكثير من الاهتمام بالكائنات A و B ، إذا كان جانب واحد من الفارغ سيؤدي إلى مؤشر فارغ.
كائن غير معروف = null ؛ // طريقة خاطئة - قد يتسبب في nullpointerxceptionif (unknownObject.equals ("المعروفة")) {system.err.println ("قد يؤدي هذا إلى nullpointerexception (غير معروف) (غير معروف) (غير معروف). System.Err.Println ("تجنب الترميز الأفضل nullpointerxception") ؛}هذه هي أهم خدعة Java لتجنب NullPointException ، ولكن النتيجة ستكون تحسنا كبيرًا لأن متساو () طريقة شائعة للغاية.
2) عندما يعيد كلاهما نفس النتيجة ، يتم تفضيل ValueOF () بدلاً من tostring ()
لأن كائن فارغ سوف يرمي NullPointException عند استدعاء tostring (). إذا تمكنا من الحصول على نفس القيمة عن طريق استدعاء القيمة () ، فيجب علينا استخدام ValueOF (). هذا سوف يمر قيمة فارغة. خاصة في حالات فصول التغليف مثل عدد صحيح أو تعويم أو مزدوج أو bigdecimla.
BigDecimal bd = getPrice () ؛ system.out.println (string.valueof (bd)) ؛ // لا يرمي npesystem.out.println (bd.toString ()) ؛ // رمي "استثناء في الموضوع" الرئيسي "java.lang.nullpointerxception"
إذا لم تكن متأكدًا مما إذا كان الكائن الذي تستخدمه فارغًا ، فيرجى استخدام خدعة Java هذه
3) استخدام طريقة آمنة فارغة أو مكتبة الفصل
هناك العديد من مكونات المصدر المفتوح التي تم فحصها لك الآن. واحدة من أكثرها شيوعا هو apach's stringutils. يمكنك استخدام stringUtils.isblank () و isNumberic () و ishiteSpace () وأدوات أخرى دون القلق بشأن طرق NullPointException.
System.out.println (stringUtils.isempty (null)) ؛ system.out.println (stringutils.isblank (null)) ؛ system.out.println (stringutils.isnumeric (null)) ؛ system.out.println (stringutils.isalluppercase (null)) ؛ truetruefalse
ولكن لا تنس قراءة الوثائق على أساليب وفئات الأمان الفارغة قبل إجراء أي استنتاجات. هذا هو أفضل تدريبات جافا أخرى ، والتي لن تتطلب منك بذل الكثير من الجهد ، ولكنها ستجعلك كثيرًا من التقدم.
4) تجنب إرجاع مجموعة فارغة أو صفيف فارغ بدلاً من العودة الفارغة من الطريقة
تم ذكر تقنية Java هذه أيضًا في "Java الفعالة" لجوشوا بلوش. هذا الكتاب هو أيضًا مصدر لتحسين قدرات ترميز Java. من خلال إرجاع مجموعة فارغة أو صفيف فارغ ، يمكن تحديد أن المكالمات الأساسية مثل Size () والطول () لن ترمي NullPointException. يمكن أن توفر فئة التجميع قائمة فارغة ومجموعة وخريطة مريحة ، (هذه) تحتوي على مجموعات.
الرمز كما يلي.
القائمة العامة getSorders (عميل العميل) {list result = collections.empty_list ؛ نتيجة العودة }وبالمثل ، يمكنك استخدام collections.empty_list و collections.empty_set و collections.empty_map بدلاً من إرجاع NULL.
5) التعليق مع notnull و @nullable
عند الكتابة ، يمكنك تحديد قابلية الاتفاقية ، يجب أن تطالب بما إذا كانت هذه الطريقة آمنة من خلال استخدام تعليقات مثل Notnull و @nullable. يمكن للمترجمين الحديثة و IDES والأدوات الأخرى قراءة هذا التعليق لمساعدتك في إجراء فحص فارغ أو إخبارك بما إذا كنت بحاجة إلى شيك فارغ. Intellijide و FindBugs تدعم بالفعل هذا التعليق التوضيحي. هذه التعليقات هي أيضًا جزء من JSR 305 (ملاحظة المترجم: يمكن فهمها على أنها معيار Java). من خلال رؤية notnull و @nullable ، يمكن للمبرمجين أن يقرروا ما إذا كان سيتم إجراء الفحص الفارغ. بالمناسبة ، هذه هي أفضل الممارسات الجديدة لمبرمجي Java ، على الرغم من أن الأمر يستغرق بعض الوقت للتكيف.
6) اتبع الاتفاقيات وتحديد القيم الافتراضية المعقولة
في حقل جافا ، واحدة من أفضل الطرق لتجنب المؤشرات الفارغة هي إبرام الاتفاقات والالتزام بها. تحدث معظم NullPointExceptions لأنها تستخدم معلومات غير مكتملة أو لا يتم تزويدها بجميع التبعيات لإنشاء كائنات. إذا كنت لا تسمح بإنشاء كائنات غير مكتملة وإنكار أي من هذا القبيل ، فيمكنك منع العديد من الفوائد التي تحدث بعد فترة من الوقت. إذا سمح للكائن بإنشاء ، فيجب عليك تعيين قيمة افتراضية معقولة. على سبيل المثال ، لا يمكن إنشاء كائن الموظف بدون سمات المعرف والاسم ، ولكن يمكن أن يكون له رقم pghone اختياري. إذا لم يكن لدى الموظف رقم هاتف ، فقم بإرجاع 0 بدلاً من إرجاع قيمة فارغة. لكن هذا النوع من المعالجة يجب أن يتعامل مع التحقق من قيم NULL بعناية فائقة بدلاً من التحقق من المدخلات غير القانونية. لاحظ أيضًا أنه عند تحديد قيمة فارغة أم لا ، ذكر المتصل باتخاذ القرار المستنير. يعد اختيار أو قبول القيم الخالية بعد الفشل أيضًا تصميمًا مهمًا تحتاج إلى الانتباه إليه.
7) إذا كنت تستخدم قاعدة بيانات لتخزين كائن المجال الخاص بك (كائن Demain)
على سبيل المثال: العميل ، أوامر ، وما إلى ذلك ، يجب عليك تحديد بعض القيود على القيم الخالية في قاعدة البيانات. نظرًا لأن قاعدة البيانات يمكن أن تتطلب بيانات من مصادر متعددة ، فإن وجود قيم خالية في قاعدة البيانات سيضمن سلامة البيانات. سيتيح لك الاحتفاظ بالقيود على القيم الخالية في قاعدة البيانات أيضًا تقليل التحقق الخالي من Java. عندما تأخذ كائنًا من قاعدة البيانات ، يمكنك التأكد من أن هذه الخصائص يمكن أن تكون فارغة وأن تلك الخصائص لا يمكن أن تكون فارغة ، مما سيقلل من الكود لتلك الشيكات الفارغة.
8) استخدام وضع الكائن الفارغ
هذه طريقة أخرى لتجنب NullPointException في Java. إذا قامت طريقة بإرجاع كائن ، والذي يريد المتصل التكرار عبر الكائن ، الذي يحتاج المتصل إلى استخدام بعض الطرق المشابهة لـ Collection.iterator () لإرجاع ITERATOR. إذا لم يكن لدى المتصل أي من الطرق المذكورة أعلاه ، فمن الممكن إرجاع الكائن الفارغ بدلاً من الفارغ. كائن فارغ هو كائن خاص له معاني مختلفة في سياقات مختلفة. في الحالات التي يتم فيها إرجاع مثل هذه الأساليب المتطرفة أو نوع الاتصال ، يجب استخدام الكائن الفارغ (الكائن الفارغ) في الداخل بدلاً من العودة الفارغة.