เมื่อคุณดูการสะท้อนให้จดบันทึก วัตถุสะท้อนแสงในปัจจุบันจะต้องมีวัตถุนั่นคือ Entity Beans
การอ้างอิง: Java Reflection การสอนง่ายๆ
นำเข้า java.lang.reflect.field; นำเข้า java.util.arraylist; นำเข้า java.util.hashmap; นำเข้า java.util.list; นำเข้า java.util.map;/** * สะท้อนการประมวลผลถั่ว วัตถุ * วัตถุเดี่ยว * * @return map <สตริง, วัตถุ> แผนที่สตริงคีย์ทั้งหมดค่าวัตถุเช่น: {pjzyfy = 0.00, * xh = 01, zzyl = 0.00, MC = อุบัติการณ์ของแผลกด แผนที่คงที่ <สตริงวัตถุ> getKeyandValue (Object OBJ) {MAP <String, Object> MAP = ใหม่ HashMap <String, Object> (); // รับคลาสคลาสคลาส USERCLA = (คลาส) obj.getClass ();/* รับชุดแอตทริบิวต์ทั้งหมดในคลาส*/field {ฟิลด์ f = fs [i]; f.setAccessible (true); // ตั้งค่าคุณสมบัติบางอย่างให้เป็นวัตถุที่สามารถเข้าถึงได้ val = วัตถุใหม่ (); ลอง {val = f.get (obj); // รับค่าของแผนที่คุณสมบัตินี้ (f.getName (), val); e) {e.printstacktrace ();}/ * * ประเภทสตริง = f.getType (). toString (); // รับประเภทของคุณสมบัตินี้ถ้า * (type.endswith ("String")) { * System.out.println (f.getType ()+"/t คือสตริง"); f.set (obj, "12"); * // ตั้งค่าค่าสำหรับคุณสมบัติ} อื่นถ้า (type.endswith ("int") || * type.endswith ("จำนวนเต็ม")) { * system.out.println (f.getType ()+"/t คือ int"); f.set (obj, 12); // ตั้งค่าค่าสำหรับคุณสมบัติ*} else {system.out.println (f.getType ()+"/t"); } */} system.out.println ("ค่าคีย์ทั้งหมดของวัตถุเดียว == reflection ==" + map.toString ()); return map;}/** * ค่าของคีย์ของวัตถุเดียว * * @param Object * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * รับคลาสคลาสคลาส usercla = (คลาส) obj.getClass ();/* รับชุดแอตทริบิวต์ทั้งหมดในคลาส*/ฟิลด์ [] fs = usercla.getDeclaredFields (); สำหรับ (int i = 0; i <fs.length; i ++) {field f = fs [i] (f.getName (). endswith (key)) {system.out.println ("ค่าของคีย์ของวัตถุเดียว == reflection ==" + f.get (obj)); return f.get (obj);}} จับ {E.PrintStackTrace ();}} // ส่งคืนสตริงว่างเมื่อไม่พบ return "";}/** * ค่าคีย์ทั้งหมดของวัตถุหลายรายการ (รายการ) * * @param Object * @return List <Map <String, Object >> ค่าคีย์ทั้งหมดของวัตถุทั้งหมดในรายการ: [{pjzyfy = 0.00, XH = 01 pjypfy = 0.00, rs = 0, pjzyts = 0.00, * czydm = 0037, lx = 921, zssl = 0.00}, {pjzyfy = 0.00, xh = 02, zzyl = 0.00, * mc = เหตุการณ์ของการบาดเจ็บของนีออน czydm = 0037, lx = 13, * zssl = 0.00}, {pjzyfy = 0.00, xh = 03, zzyl = 0.00, MC = อุบัติการณ์ของการคลอดในช่องคลอด, * pjypfy = 0.00, rs = 0, pjzyts = 0.00 {pjzyfy = 0.00, xh = 04, zzyl = 0.75, mc = อุบัติการณ์ของปฏิกิริยาการถ่ายเลือด, pjypfy = 0.00, rs = 0, * pjzyts = 0.00, czydm = 0037, lx = 0, zssl = 0.00} MC = อัตราการผ่าตัดคลอด, pjypfy = 1611.05, rs = 13, pjzyts = 7.15, * czydm = 0037, lx = 13, zssl = 0.00}] */รายการสแตติกสาธารณะ <map <String, Object >> GetKeySandValues Object >> (); สำหรับ (Object OBJ: Object) {คลาส usercla; // รับคลาส object usercla = (คลาส) obj.getClass ();/* รับชุดแอตทริบิวต์ทั้งหมดในคลาส*/ฟิลด์ [] fs = usercla.getDeclaredFields () i ++) {ฟิลด์ f = fs [i]; f.setAccessible (true); // ตั้งค่าคุณสมบัติบางอย่างให้เป็นวัตถุที่สามารถเข้าถึงได้ val = วัตถุใหม่ (); ลอง {val = f.get (obj); // รับค่าของคุณสมบัตินี้ (unglegalAccessException e) {e.printstacktrace ();}} list.add (listchild); // เพิ่มแผนที่ไปยังรายการรวบรวมรายการ} system.out.println ("ค่าคีย์ทั้งหมดของวัตถุ (รายการ) วัตถุ ====" + list.toString ();); return list;}/** * ค่าของคีย์ของวัตถุหลายรายการ (รายการ) * * @param object * @param key * @return list <jobch> ค่าทั้งหมดที่สอดคล้องกับคีย์ในรายการคือ Ex: ปุ่มคือฟิลด์ MC ในวิธีการด้านบน ข้อมูลที่ส่งคืนคือ: [อุบัติการณ์ของแผลกดทับในผู้ป่วยในโรงพยาบาล, * อุบัติการณ์ของการบาดเจ็บที่เกิดทารกแรกเกิด, การบาดเจ็บจากการคลอดของมารดา, ปฏิกิริยาการถ่ายเลือด, อัตราการผ่าตัดคลอด] */รายการคงที่สาธารณะ <Ojrop> GetValuesByKey สำหรับ (Object OBJ: Object) {// รับคลาสคลาสคลาส usercla = (คลาส) obj.getClass ();/* รับชุดแอตทริบิวต์ทั้งหมดในคลาส*/ฟิลด์ [] fs = usercla.getDeclaredFields () (int i = 0; i <fs.length; i ++) ลอง {if (f.getName (). endswith (key)) {list.add (f.get (obj));}} catch (unlegalargumentexception e) {e.printstacktrace ();} catch Objects ==== " + list.toString ()); return list;}}เรียกว่า:
รายการ <Object> o =? Service.getAlllist ();
// การทดสอบการวิเคราะห์การไตร่ตรอง Java
ReflexObjectutil.getKeyandValue (O.Get (0));
ReflexObjectutil.getValueByKey (O.Get (0), "MC");
reflexobjectutil.getKeySandValues (O);
reflexobjectutil.getValuesByKey (o, "MC");
สรุป
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้เกี่ยวกับการใช้การสะท้อนของ Java เพื่อให้ได้แอตทริบิวต์และรหัสรหัสของวัตถุ ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน เพื่อนที่สนใจสามารถอ้างถึงเว็บไซต์นี้ต่อไปได้:
บทช่วยสอนการไตร่ตรอง Java
Java Reflection Mechnism ตัวอย่างการแชร์รหัส
สิ่งที่คุณต้องรู้เกี่ยวกับกลไกการสะท้อนชวา
หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น ขอบคุณเพื่อนที่ให้การสนับสนุนเว็บไซต์นี้!