كيف يمكن حقن حاوية من سمات الطبقة خاصة المشروح يعمل في جافا؟

StackOverflow https://stackoverflow.com/questions/1615061

سؤال

ولقد بدأت قراءة إنتربرايز جافابين 3.0 كتاب بيل بورك وريتشارد مونسون-Haefel وفي الفصل 4 لديها هذا الرمز

@PersistenceContext(unitName="titan") private EntityManager manager;

والطبقة ثم ديه الأساليب التي الوصول إلى هذا الحقل (الذي لم تطأ في منشئ وليس لديها طريقة اضع). لذلك كيف يمكن ضبط الحاوية هذا المجال خاص مع مثيل الفعلي؟ أفترض أن هناك بعض التأمل و / أو بايت كود السحر يحدث -؟ كيف هو أن تفعل

هل كانت مفيدة؟

المحلول

<وأ href = "http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html#getDeclaredField(java.lang.String)" يختلط = "نوفولو noreferrer "> getDeclaredFields () سيعود قائمة الحقول أعلن في الصف.

حاوية حلقات عبر كافة الحقول التحقق من الشروح المناسبة. حالما يتم العثور على حقل حاجة، فإنه يستحضر <لأ href = "http://java.sun.com/j2se/1.5.0/docs/api/java/lang/reflect/AccessibleObject.html#setAccessible(boolean)" يختلط = "نوفولو noreferrer"> setAccessible (صحيح) على هذا المجال من أجل أن تكون قادرة على التلاعب به من التعليمات البرمجية حيث أنها عادة لا يكون الوصول إليها.

نصائح أخرى

manager.getClass().getDeclaredFields()

هل تحصل على الوصول إلى الحقول. رؤية javadocs هنا

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top