[java] 클래스의 메소드 정보 얻기

Java 프로그램에서 Reflection을 사용하여 클래스의 메소드 정보를 동적으로 얻을 수 있습니다. Reflection은 런타임에 클래스의 구조를 조사하고 조작하는 기능을 제공합니다.

클래스 로드

먼저, 클래스를 로드해야 합니다. Class.forName() 메소드를 사용하여 클래스를 로드할 수 있습니다.

Class<?> myClass = Class.forName("com.example.MyClass");

메소드 얻기

로드된 클래스에서 getMethods() 메소드를 사용하여 클래스에 정의된 모든 public 메소드를 얻을 수 있습니다.

Method[] methods = myClass.getMethods();
for (Method method : methods) {
    System.out.println("메소드 이름: " + method.getName());
}

특정 메소드 얻기

특정한 메소드만 필요할 경우, getMethod() 메소드를 사용할 수 있습니다. 메소드 이름과 매개변수 타입을 지정하여 해당 메소드를 얻을 수 있습니다.

Method specificMethod = myClass.getMethod("methodName", parameterTypes);

Reflection을 사용하여 클래스의 메소드 정보를 얻는 것은 런타임에 유용할 수 있지만, 실제로는 사용에 주의해야 합니다. Reflection은 성능 면에서 부담을 줄 수 있으며, 타입 안정성을 보장하지 않을 수 있습니다.

더 많은 정보를 원하신다면 Oracle Java Documentation를 참고하시기 바랍니다.