[java] 리플렉션을 이용한 동적으로 인터페이스 구현하기
리플렉션(reflection)은 자바 프로그램 내에서 클래스의 정보를 동적으로 분석하고 사용할 수 있는 기술이다. 리플렉션을 이용하여 동적으로 인터페이스를 구현하는 방법에 대해 알아보겠다.
리플렉션 사용하기
public class DynamicInterfaceExample {
public static void main(String[] args) {
try {
Class<?> dynamicClass = Class.forName("com.example.DynamicImplementation");
DynamicInterface dynamicObject = (DynamicInterface) dynamicClass.newInstance();
dynamicObject.dynamicMethod();
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) {
e.printStackTrace();
}
}
}
위의 코드는 리플렉션을 사용하여 DynamicImplementation
클래스를 동적으로 로드하고, DynamicInterface
인터페이스를 구현한 객체를 생성하여 메서드를 호출한다.
동적으로 구현된 인터페이스
public interface DynamicInterface {
void dynamicMethod();
}
public class DynamicImplementation implements DynamicInterface {
@Override
public void dynamicMethod() {
System.out.println("Dynamic method implementation");
}
}
DynamicInterface
를 구현한 DynamicImplementation
클래스는 런타임 시 동적으로 로드되어 사용된다.
결론
리플렉션을 이용하면 프로그램 실행 중에 클래스를 동적으로 로드하고 인스턴스를 생성할 수 있다. 이를 활용하여 동적으로 인터페이스를 구현하는 유연한 프로그래밍이 가능하다.
참고 자료:
이상으로 리플렉션을 이용한 동적으로 인터페이스를 구현하는 방법에 대해 알아보았다.