مقدمة
أولاً ، اسمحوا لي أن أقدم بعض التفسيرات العملية الأقل: آلية انعكاس Java هي أنه في حالة الجري ، لأي فصل ، يمكنك معرفة جميع خصائص وطرق هذه الفئة ؛ لأي كائن ، يمكنك استدعاء أي طرق وخصائص منه ؛ تسمى هذه الوظيفة للحصول على معلومات ديناميكية واتصالات الكائنات ديناميكيًا آلية الانعكاس للغة Java.
استخدام بسيط
الانعكاس هو وسيلة شائعة وسهلة الاستخدام في Java (ولكن عليك أن تعرف أن كفاءتها منخفضة نسبيًا ، لذلك يجب عليك استخدامها بحذر) بالطبع ، يمكن أيضًا استخدامها في Android استنادًا إلى لغة Java. يمكننا استخدام الانعكاس للحصول على بعض الفئات غير المفتوحة ولكن الوجودية ، وذلك لاستدعاء بعض أساليبها. دعنا نكتسبها بإيجاز أدناه ، باستخدام Java Reflection للحصول على فصول وتنفيذ الأساليب التي تسميها.
. // instantiate كائن الفئة المقابل javareflect = reflect.newinstance () ؛ if (null! = javareflect) {// تعكس طريقة stringtoup () في فئة الفئة stringToup هي اسم الطريقة ، و string.class هي طريقة نوع المعلمة stringtoup = resperence.getDeclaredMethod ("stringtoup" ، string.class) ؛ // قم بإلغاء الشيك الشرعي للوصول إلى الأساليب الخاصة StringToUp.SetAccible (True) ؛ // حساب طريقة stringtoup () ، تمثل المعلمة الأولى الفئة المقابلة ، والثاني هو المعلمة سلسلة الأسلوب str = (string) stringtoup.invoke (javareflect ، "java reflects test") ؛ System.out.println ("النتيجة:"+str) ؛ }} catch (استثناء e) {e.printstacktrace () ؛} دعونا نلقي نظرة على ما فعلته في StringToup:
سلسلة السلسلة العامة (String str) {return str.touppercase () ؛}في الواقع ، إنها مجرد سلسلة لتحويلها إلى رأس مال ، ثم إعادتها. حسنًا ، دعنا نلقي نظرة على نتيجة الإخراج:
01-02 08: 09: 11.959 6150-6150/com.zxf.alpha i/system.out: النتيجة: Java تعكس الاختبار
إنه ببساطة مثالي.
لخص
حسنًا ، ما سبق هو كل شيء عن هذا المقال. الانعكاس لديه العديد من التطبيقات في Android. على سبيل المثال ، عندما يكون لمشروعنا وحدات متعددة ، يمكنك القيام بذلك إذا كنت ترغب في استدعاء طريقة للبرنامج الرئيسي في الوحدة ، أو يمكنك استخدام الانعكاس لاستدعاء بعض الأساليب والجماعية ، ولكن الكفاءة ليست عالية جدًا. آمل أن يكون محتوى هذه المقالة مفيدًا للجميع لتعلم أو استخدام الإشعاع في Java. إذا كان لديك أي أسئلة ، فيمكنك ترك رسالة للتواصل.