다음과 같이 코드 코드를 복사합니다.
/**
* 메소드 이름을 기준으로 리플렉션 메소드의 매개변수 유형을 얻습니다. (고려하지 않고 동일한 이름의 오버로드된 메소드를 사용할 경우 주의)
* @param obj 클래스 인스턴스
* @param methodName 메소드 이름
* @반품
* @throws ClassNotFoundException
*/
공개 정적 클래스[] getMethodParamTypes(객체 클래스인스턴스,
문자열 methodName)에서 ClassNotFoundException이 발생합니다.
클래스[] paramTypes = null;
Method[] 메소드 = classInstance.getClass().getMethods();//모든 메소드
for (int i = 0; i<methods.length; i++) {
if(methodName.equals(methods[i].getName())){//수신 메소드 이름과 일치
Class[] params = 메소드[i].getParameterTypes();
paramTypes = 새 클래스[ params.length];
for (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(),"메소드 이름"));