"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > لماذا لا يؤدي استدعاء أسلوب ثابت على مرجع فارغ إلى ظهور استثناء NullPointerException؟

لماذا لا يؤدي استدعاء أسلوب ثابت على مرجع فارغ إلى ظهور استثناء NullPointerException؟

تم النشر بتاريخ 2024-11-12
تصفح:663

Why Doesn\'t Invoking a Static Method on a Null Reference Throw a NullPointerException?

فهم استدعاء الطريقة الثابتة والمراجع الخالية

على عكس المفاهيم الخاطئة الشائعة، فإن استدعاء طريقة (ثابتة) على مرجع فارغ لا يؤدي إلى NullPointerException. لفهم هذا السلوك، من الضروري فهم مفهوم الأساليب الثابتة في Java.

الأساليب الثابتة: مورد مشترك

على عكس الأساليب غير الثابتة (المثيل) التي ترتبط بمثيلات كائن محددة، وترتبط الأساليب الثابتة بالفئة التي تنتمي إليها. وهي لا تتطلب الوصول إلى كائن لأنها تعمل على مستوى النوع.

الوصول إلى الطرق الثابتة: عبر تعبيرات الكتابة

الطريقة الصحيحة لاستدعاء طريقة ثابتة يتم ذلك باستخدام تعبير نوع، مثل Why.test(). يضمن هذا الأسلوب استدعاء الطريقة الثابتة مباشرة في الفصل دون تضمين مثيل كائن.

المأزق: استخدام التعبيرات المرجعية للكائنات

على الرغم من أن Java تسمح بالوصول إلى الأعضاء الثابتين من خلال التعبيرات المرجعية للكائنات، فإن القيام بذلك أمر غير محبذ بشدة وقد يؤدي إلى حدوث ارتباك. عند استخدام هذا الأسلوب (لماذا aNull = null; aNull.test())، يحدد النوع المعلن للمرجع (لماذا) الطريقة الثابتة التي يتم استدعاؤها.

آثار استخدام التعبيرات المرجعية للكائن

  • يتم تجاهل عمليات التحقق الخالية: نظرًا لعدم وجود كائن مطلوب، فإن التحقق من القيمة الفارغة على المرجع (aNull) غير ذي صلة.
  • وقت التشغيل يتم تجاهل النوع: لا يؤثر نوع وقت التشغيل الفعلي للكائن (إن لم يكن فارغًا) على إرسال الطريقة الثابتة. ]لتجنب الارتباك وضمان القدرة على التنبؤ، قم دائمًا باستدعاء الأساليب الثابتة باستخدام تعبيرات الكتابة. يعد فهم طبيعة الأعضاء الثابتين وآليات الوصول الخاصة بهم أمرًا بالغ الأهمية لكتابة تعليمات برمجية Java صحيحة وقابلة للصيانة.
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3