[java] 익명 클래스와 리플렉션

이번에는 자바 프로그래밍에서 중요한 개념인 익명 클래스와 리플렉션에 대해 알아보려고 합니다.

익명 클래스

익명 클래스는 이름이 없는 내부 클래스로, 주로 한 번만 사용되는 간단한 기능을 구현할 때 활용됩니다. 주로 인터페이스나 추상 클래스를 바로 인스턴스화하여 사용할 때 유용합니다.

아래는 인터페이스를 구현하는 익명 클래스의 간단한 예시입니다.

interface MyInterface {
    void myMethod();
}

public class Main {
    public static void main(String[] args) {
        MyInterface myInterface = new MyInterface() {
            @Override
            public void myMethod() {
                System.out.println("This is an anonymous class implementation");
            }
        };
        myInterface.myMethod();
    }
}

리플렉션

리플렉션은 실행 중인 자바 프로그램의 클래스, 인터페이스, 메서드 등의 구조를 분석하는 기술입니다. Class, Method, Field 등의 클래스를 활용하여 실행 중에 클래스의 정보를 조사하거나 수정할 수 있습니다.

아래는 리플렉션을 사용하여 메서드를 실행하는 간단한 예시입니다.

import java.lang.reflect.Method;

public class Main {
    public static void main(String[] args) throws Exception {
        Class<?> myClass = Class.forName("com.example.MyClass");
        Method myMethod = myClass.getMethod("myMethod");
        Object obj = myClass.newInstance();
        myMethod.invoke(obj);
    }
}

리플렉션은 반드시 필요한 경우에만 사용해야 하며, 오용될 경우 코드의 가독성을 저하시키고 성능에 영향을 미칠 수 있습니다.

결론

익명 클래스와 리플렉션은 자바 프로그래밍에서 강력한 도구로, 올바르게 활용할 경우 유용한 기능을 제공할 수 있습니다. 다만, 적절한 상황에서 사용하는 것이 중요하며 안정성과 가독성에 유의해야 합니다.