แค่คิดว่าถ้าคุณสามารถเรียกวิธีการส่วนตัวของชั้นเรียนได้อย่างง่ายดายนั่นหมายความว่าการห่อหุ้มของคุณหมดอายุแล้วหรือยัง? เมื่อเร็ว ๆ นี้ฉันกำลังดูกลไกการสะท้อนของ Java และพบว่ามันสามารถใช้กลไกการสะท้อนกลับของ Java เพื่อเรียกวิธีการส่วนตัวของชั้นเรียนอื่น ๆ สำหรับสิ่งที่สามารถทำได้มันขึ้นอยู่กับความคิดเห็นของผู้คน -
รหัสตัวอย่างง่ายๆที่ฉันเขียนมีดังนี้:
นำเข้า java.lang.reflect.invocationTargetException; นำเข้า java.lang.reflect.method;/** * @author Thomaslwq * @version เวลาสร้าง: 4 ก.ย. 2012 9:53:49 PM * คำอธิบายชั้นเรียน การผิดกฎหมายการรับรู้ผิดกฎหมาย *** ception, InvocationTargetException {class cls = obj.getClass (); // รับวิธีการส่วนตัวของวิธีการเรียนวิธี = cls.getDeclaredMethod ("privateMethod", null); method.setAccessible (จริง); // ข้อผิดพลาดจะถูกรายงานโดยไม่ต้องตั้งค่า // เรียกวิธีนี้ invoke (obj, null); } โมฆะคงที่สาธารณะหลัก (String args []) โยนความปลอดภัย Exception, unlegalargumentException, nosuchmethodexception, unlusalAcces *** ception, ravecationTargetException {setObjectColor (ใหม่ myTest ()); }} // คลาสทดสอบ mytest {โมฆะสาธารณะ setMyTest () {system.out.println ("setMyTest"); } / ** วิธีการส่วนตัวของคลาส ** / โมฆะส่วนตัว PrivateMethod () {System.out.println ("วิธีส่วนตัว"); -วิธีการส่วนตัวข้างต้น (แนะนำ) ที่ใช้กลไกการสะท้อน Java เพื่อโทรหาคลาสคือเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น