본문 바로가기
Java

method를 찾고 invoke 하는 함수

by 루에 2023. 1. 5.
반응형

작업하다 사용하지 않을 것 같아서 코드만 여기에 정리.

 

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);
		}
	}
}
반응형

댓글