عندما تنظر إلى التفكير ، تدوين ملاحظة. يجب أن تحتوي كائنات الانعكاس الحالية على كائنات ، أي حبوب كيان.
المرجع: جافا انعكاس البرنامج التعليمي البسيط
استيراد java.lang.reflect.field ؛ استيراد java.util.arraylist ؛ استيراد java.util.hashmap ؛ استيراد java.util.list الكائن * * return خريطة <سلسلة ، كائن> خريطة جميع مفاتيح السلسلة قيم الكائنات على سبيل المثال: {pjzyfy = 0.00 ، * xh = 01 ، zzyl = 0.00 ، mc = حدوث قرحة الضغط في مرضى المستشفى ، pjypfy = 0.00 ، rs = 0 ، pjzyts = 0.00 ، * czydm = 0037 ، lx = 921 ، zss. خريطة <string ، object> getKeyAndValue (Object obj) {map <string ، object> map = new hashmap <string ، object> () ؛ // احصل على فئة كائن الفئة userCla = (class) obj.getclass () ؛/* الحصول على جميع مجموعات السمات في الفئة*/field [] f = fs [i] ؛ f.setAccessible (true) ؛ // قم بتعيين بعض الخصائص ليكون كائنًا يمكن الوصول إليه val = new Object () ؛ حاول {val = f.get (obj) ؛ // احصل على قيمة خاصية map.put (f.getName () ، val) ؛ {E.PrintStackTrace () ؛}/ * * type type = f.gettype (). F.Set (OBJ ، "12") ؛ * // قم بتعيين القيمة للخاصية} else if (type.endswith ("int") || * type.endswith ("integer")) { * system.out.println (f.gettype ()+"/t is int") ؛ F.Set (OBJ ، 12) ؛ // قم بتعيين قيمة الخاصية*} else {system.out.println (f.gettype ()+"/t") ؛ } */} system.out.println ("جميع قيم المفاتيح لكائن واحد == الانعكاس ==" + map.toString ()) ؛ إرجاع خريطة فئة كائن الفئة usercla = (class) obj.getclass () ؛/* الحصول على جميع مجموعات السمات في الفئة*/field [] fs = userCla.getDeclaredFields () ؛ for (int i = 0 ؛ i <fs.length ؛ i ++) {field f = fs [i] (f.getName (). endswith (key)) {system.out.println ("قيمة مفتاح كائن واحد == انعكاس ==" + f.get (obj)) ؛ return f.get (obj) ؛}} catch (aluctalargumentexception e) {eprintstacktrace () ؛ {E.PrintStackTrace () ؛}} // إرجاع السلسلة الفارغة عند عدم العثور عليها إرجاع "" ؛}/** * جميع قيم المفاتيح للمفاتيح (قائمة) كائن * * param كائن * @RETURN <map <string ، object >> جميع قيم المفاتيح في جميع الكائنات في القائمة: [{pjzyfy = 0.00 ، pjypfy = 0.00 ، rs = 0 ، pjzyts = 0.00 ، * czydm = 0037 ، lx = 921 ، zssl = 0.00} ، {pjzyfy = 0.00 ، xh = 02 ، zzyl = 0.00 ، * mc = the ancidence of eonatal regury ، pjypfy = 0.00 ، czydm = 0037 ، lx = 13 ، * zssl = 0.00} ، {pjzyfy = 0.00 ، xh = 03 ، zzyl = 0.00 ، mc = حدوث التسليم المهبلي ، * pjypfy = 0.00 ، rs = 0 ، pjzyts = 0.00 ، czydm = 0037 ، lx = 0 ، zss {pjzyfy = 0.00 ، xh = 04 ، zzyl = 0.75 ، mc = حدوث تفاعل نقل الدم ، pjypfy = 0.00 ، rs = 0 ، * pjzyts = 0.00 ، czydm = 0037 ، lx = 0 ، zssl = 0.00} ، {pjzyfy = 5186.12 ، MC = معدل القسم القيصري ، pjypfy = 1611.05 ، rs = 13 ، pjzyts = 7.15 ، * czydm = 0037 ، lx = 13 ، zssl = 0.00}] */قائمة ثابتة <str static <string ، كائن >> getKeysandvals (Object OBJ: Object) {class usercla ؛ // احصل على كائن الفئة userCla = (class) obj.getClass () ؛/* احصل على جميع مجموعات السمات في الفئة*/field [] fs = userCla.getDeclaredFields () ؛ map <string ، كائن> listchild = new hasmap <string ، object> fs [i] ؛ f.setAccessible (true) ؛ // قم بتعيين بعض الخصائص ليكون كائنًا يمكن الوصول إليه val = كائن جديد () ؛ جرب {val = f.get (obj) ؛ // احصل على قيمة خاصية listchild.put (f.getName () ، val) ؛ {E.PrintStackTrace () ؛}} list.add (ListChild) ؛ // إضافة خريطة إلى مجموعة القائمة} system.out.println ("جميع قيم المفاتيح (القائمة) الكائنات ====" + list.toString ()) ؛ قائمة الإرجاع ؛}/** * قيمة مفتاح الكائنات المتعددة (قائمة) * * param كائن * @param مفتاح * @قائمة <boung> جميع القيم المقابلة للمفتاح في القائمة هي: مفاتيح هي حقل MC في الطريقة أعلاه. البيانات التي تم إرجاعها هي: [حدوث قرحة الضغط في المرضى الذين تم إدخالهم في المستشفى ، * حدوث إصابة الولادة الوليدية ، وإصابة الولادة المهبلية ، وتفاعل الولادة ، وتفاعل نقل الدم ، وقسم القيصرية] */القائمة الثابتة العامة <Boung> getValuesBykey (قائمة <bourg> كائن ، مفتاح سلسلة) {قائمة <socent> قائمة <Corph> لـ (Object OBJ: Object) {// احصل على فئة كائن الفئة userCla = (class) obj.getClass () ؛/* الحصول على جميع مجموعات السمات في الفئة*/field [] fs = userCla.getDeclaredFields () ؛ for (int i = 0 ؛ i <fs.length ؛ i ++) {field f = fs [i] {if (f.getName (). endswith (key)) {list.add (f.get (obj)) ؛}} catch (alfulalArgumentException e) {E.PrintStackTrace () ؛ الكائنات ===== " + list.toString ()) ؛ قائمة الإرجاع ؛}}مُسَمًّى:
قائمة <Object> o =؟ service.getAllList () ؛
// اختبار تحليل انعكاس جافا
reflexObjectutil.getKeyandvalue (O.Get (0)) ؛
reflexObjectutil.getValueBykey (O.Get (0) ، "MC") ؛
ReflexObjectutil.getkeysandvalues (O) ؛
reflexObjectutil.getValuesBykey (O ، "MC") ؛
لخص
ما سبق هو المحتوى الكامل لهذه المقالة حول استخدام Java للانعكاس للحصول على رمز السمة والقيمة لكائن. آمل أن يكون ذلك مفيدًا للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى هذا الموقع:
جافا انعكاس البرنامج التعليمي
جافا انعكاس آلية مشاركة الكود
الأشياء التي تحتاج إلى معرفتها حول آلية انعكاس Java
إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!