[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 클래스는 런타임 시 동적으로 로드되어 사용된다.

결론

리플렉션을 이용하면 프로그램 실행 중에 클래스를 동적으로 로드하고 인스턴스를 생성할 수 있다. 이를 활용하여 동적으로 인터페이스를 구현하는 유연한 프로그래밍이 가능하다.

참고 자료:

이상으로 리플렉션을 이용한 동적으로 인터페이스를 구현하는 방법에 대해 알아보았다.