คัดลอกรหัสรหัสดังต่อไปนี้:
-
* รับประเภทพารามิเตอร์ของวิธีการสะท้อนตามชื่อวิธีการ (หมายเหตุเมื่อใช้วิธีการโอเวอร์โหลดด้วยชื่อเดียวกันโดยไม่พิจารณา)
* อินสแตนซ์คลาส @param obj
* @param methodName ชื่อวิธี
* @กลับ
* @ พ่น ClassNotFoundException
-
คลาสคงที่สาธารณะ [] getMethodParamTypes (วัตถุ classInstance,
String methodName) พ่น ClassNotFoundException{
คลาส [] paramTypes = null;
วิธีการ[] วิธีการ = classInstance.getClass().getMethods();//วิธีการทั้งหมด
สำหรับ (int i = 0; i< method.length; i++) {
if(methodName.equals(methods[i].getName())){//จับคู่ชื่อเมธอดที่เข้ามา
คลาส [] พารามิเตอร์ = วิธีการ [i] .getParameterTypes ();
paramTypes = คลาสใหม่ [ params.length];
สำหรับ (int j = 0; j < params.length; j++) {
paramTypes[j] = Class.forName(params[j].getName());
-
หยุดพัก;
-
-
ส่งคืน paramTypes;
-
//รับการทดสอบวิธี (คุณสามารถเขียนอะไรก็ได้ที่คุณต้องการสำหรับคลาสการทดสอบ ฉันจะไม่เขียนไว้ที่นี่)
วิธีการ m = Test.class.newInstance().getClass().getDeclaredMethod("ชื่อวิธีการ", getMethodParamTypes(Test.class.newInstance(),"ชื่อวิธีการ"));