반응형
작업하다 사용하지 않을 것 같아서 코드만 여기에 정리.
package com.gsretail.pbu.common.util;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import com.gsretail.pbu.common.exception.BusinessException;
import com.gsretail.pbu.common.status.ErrorEnum;
public class MethodUtils {
/**
* obj의 name 메소드를 찾아 리턴한다.
* @param obj 클래스
* @param name 메소드 이름
* @param parameterTypes 메소드 파라미터 타입 클래스
* @return 메소드
*/
public static Method getMethod(Object obj, String name, Class<?>... parameterTypes) {
try {
return obj.getClass().getDeclaredMethod(name, parameterTypes);
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
}
}
/**
* 메소드를 실행한다.
* @param method 실행할 메소드
* @param obj 메소드의 클래스 객체
* @param args 메소드의 파라미터
* @return
*/
public static Object invoke(Method method, Object obj, Object... args) {
try {
return method.invoke(obj, args);
} catch (InvocationTargetException e) {
throw new RuntimeException(e);
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
}
}
반응형
댓글