Java Reflection API: كل ما تحتاج إلى معرفته



ستقدم لك هذه المقالة واجهة برمجة تطبيقات Java Reflection وتساعد أيضًا في كيفية عمل Reflection في Java وما هو بالضبط مع العرض التوضيحي

انعكاس هو عملية فحص أو تعديل سلوك وقت التشغيل للفصل الدراسي في وقت التشغيل . Java Reflection API يستخدم للتلاعب بالفئة وأعضائها والتي تشمل الحقول والأساليب والمنشئ وما إلى ذلك في وقت التشغيل. في هذه المقالة سوف نفهم Java Reflection API بالتفصيل.

ستركز هذه المقالة على المؤشرات التالية:





لذلك دعونا نبدأ بهذه المؤشرات في هذه المقالة على Java Reflection API

أين يتم استخدام Java Reflection API؟

يستخدم Reflection API بشكل رئيسي في:



  • IDE (بيئة التطوير المتكاملة) على سبيل المثال Eclipse و MyEclipse و NetBeans وما إلى ذلك.
  • المصحح
  • أدوات الاختبار إلخ.

إذن ما هي حزمة انعكاس Class في Java lang؟

فئة في حزمة java.lang.reflect؟

فيما يلي قائمة بفئات Java المختلفة في java.lang.package لتنفيذ التفكير-

  • حقل : تُستخدم هذه الفئة لجمع المعلومات التعريفية مثل نوع البيانات ومعدل الوصول واسم المتغير وقيمته.
  • طريقة : تُستخدم هذه الفئة لجمع المعلومات التعريفية مثل معدِّل الوصول ونوع الإرجاع والاسم وأنواع المعلمات ونوع الاستثناء للطريقة.
  • باني : تُستخدم هذه الفئة لجمع المعلومات التعريفية مثل معدِّل الوصول والاسم وأنواع المعلمات للمنشئ.
  • تعديل : تُستخدم هذه الفئة لجمع معلومات حول مُعدِّل وصول معين.

لا دعونا نلقي نظرة على أساليب Java Reflection API ،



الطرق المستخدمة في java.lang.Class

طريقة

وصف

سلسلة عامة getName ()

إرجاع اسم الفئة

فئة عامة ثابتة من أجل الاسم (String className) تطرح ClassNotFoundException

يقوم بتحميل الفصل وإرجاع مرجع فئة الفصل.

يطرح العنصر العام newInstance () InstantiationException و IllegalAccessException

يخلق حالة جديدة.

المنطقية العامة هي واجهة ()

يتحقق مما إذا كانت واجهة.

قيمة منطقية عامة هي Array ()

يتحقق مما إذا كانت مجموعة.

القيمة المنطقية العامة هي بدائية ()

يتحقق مما إذا كانت بدائية.

فئة عامة getSuperclass ()

إرجاع مرجع فئة superclass.

يطرح الحقل العام [] getDeclaredFields () SecurityException

تُرجع العدد الإجمالي للحقول لهذه الفئة.

الأسلوب العام [] getDeclaredMethods () يطرح SecurityException

تُرجع العدد الإجمالي لطرق هذه الفئة.

يطرح المُنشئ العام [] getDeclaredConstructors () SecurityException

ترجع العدد الإجمالي للمنشئين من هذه الفئة.

الأسلوب العام getDeclaredMethod (اسم السلسلة ، الفئة [] parameterTypes) يطرح NoSuchMethodException و SecurityException

إرجاع مثيل فئة الطريقة.

دعونا نمضي قدما مع المقال ،

كيف تحصل على موضوع فئة Class؟

هناك 3 طرق للحصول على مثيل فئة Class. وهم على النحو التالي:

  • طريقة forName () لفئة Class
  • طريقة getClass () لفئة الكائن
  • بناء جملة فئة

طريقة forName () لفئة Class

  • يستخدم لتحميل الفصل ديناميكيًا.
  • إرجاع مثيل فئة Class.
  • يجب استخدامه إذا كنت تعرف اسم الفئة المؤهل بالكامل. لا يمكن استخدامه للأنواع البدائية.

دعنا نرى المثال البسيط لطريقة forName ().

class Simple {} class Test {public static void main (String args []) {Class c = Class.forName ('Simple') System.out.println (c.getName ())}}

انتاج:

بسيط

انعكاس جافا: طريقة API getClass () لفئة الكائن

تقوم بإرجاع مثيل فئة Class. يجب استخدامه إذا كنت تعرف النوع. علاوة على ذلك ، يمكن استخدامه مع الأوليات.

كيفية نشر تطبيق جافا في نظام AWS
class Simple {} class Test {void printName (Object obj) {Class c = obj.getClass () System.out.println (c.getName ())} public static void main (String args []) {Simple s = new Simple () Test t = new Test () t.printName (s)}}

انتاج:

بسيط

بناء جملة فئة

إذا كان النوع متاحًا ولكن لا يوجد مثيل ، فمن الممكن الحصول على فئة عن طريق إلحاق '.class' باسم النوع ويمكن استخدامه أيضًا لنوع البيانات البدائي.

فئة اختبار {public static void main (String args []) {Class c = boolean.class System.out.println (c.getName ()) Class c2 = Test.class System.out.println (c2.getName ()) }}

انتاج:

منطقي

اختبار

الآن دعنا نتابع مقالة Java Reflection API هذه

مزايا وعيوب استخدام Java Reflection API

مزايا استخدام Java Reflection API

  • ميزات القابلية للتوسعة: قد يستفيد التطبيق من الفئات الخارجية المعرفة من قبل المستخدم عن طريق إنشاء مثيلات لكائنات القابلية للتوسعة باستخدام أسمائها المؤهلة بالكامل.
  • أدوات التصحيح والاختبار : تستخدم المصححات خاصية الانعكاس لفحص الأعضاء الخاصين في الفصول الدراسية.

عيوب استخدام Java Reflection API

  • النفقات العامة للأداء: العمليات الانعكاسية لها أداء أبطأ من نظيراتها غير العاكسة ، ويجب تجنبها في أقسام الكود التي يتم استدعاؤها بشكل متكرر في التطبيقات الحساسة للأداء.
  • التعرض للداخلية: يكسر الكود الانعكاسي التجريدات وبالتالي قد يغير السلوك مع ترقيات النظام الأساسي.

وهكذا وصلنا إلى نهاية هذه المقالة حول 'Java Reflection API'. إذا كنت ترغب في معرفة المزيد ،تفحص ال بواسطة Edureka ، شركة تعليمية موثوقة عبر الإنترنت. تم تصميم دورة تدريب وإصدار شهادات Java J2EE و SOA من Edureka لتدريبك على مفاهيم Java الأساسية والمتقدمة جنبًا إلى جنب مع العديد من أطر Java مثل Hibernate & Spring.

لديك سؤال لنا؟ يرجى ذكر ذلك في قسم التعليقات بهذه المقالة وسنعاود الاتصال بك في أقرب وقت ممكن.