[java] 리플렉션을 사용한 인터페이스 메소드 호출
이번에는 리플렉션(Reflection)을 사용하여 Java에서 인터페이스의 메소드를 호출하는 방법에 대해 알아보겠습니다.
1. 리플렉션이란?
리플렉션은 실행 중인 Java 프로그램의 클래스, 메소드, 필드 등의 정보를 가져오거나 조작할 수 있는 API를 말합니다. 이를 통해 프로그램이 실행될 때 클래스의 정보를 동적으로 가져와서 사용할 수 있습니다.
2. 인터페이스 메소드 호출하기
2.1. 인터페이스 정의
먼저, 아래와 같이 MyInterface
라는 인터페이스를 정의합니다.
public interface MyInterface {
void myMethod();
}
2.2. 리플렉션을 사용한 메소드 호출
다음은 리플렉션을 사용하여 MyInterface
의 메소드를 호출하는 예제 코드입니다.
import java.lang.reflect.Method;
public class ReflectionExample {
public static void main(String[] args) throws Exception {
// 인터페이스 이름으로 클래스를 동적으로 생성
Class<?> myInterfaceClass = Class.forName("com.example.MyInterfaceImpl");
// 메소드 이름으로 메소드 찾기
Method method = myInterfaceClass.getMethod("myMethod");
// 객체 생성
Object obj = myInterfaceClass.newInstance();
// 메소드 호출
method.invoke(obj);
}
}
위 예제에서는 Class.forName()
메소드를 이용하여 인터페이스를 구현한 클래스를 동적으로 생성하고, getMethod()
메소드를 이용하여 메소드를 찾은 뒤 invoke()
메소드로 메소드를 호출합니다.
3. 결론
이렇게 리플렉션을 사용하면 실행 중에 메소드를 동적으로 호출할 수 있어, 다양한 상황에서 유연하게 클래스의 동작을 제어할 수 있습니다.
이상으로 Java에서 리플렉션을 사용하여 인터페이스의 메소드를 호출하는 방법에 대해 알아보았습니다. 감사합니다.