[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를 참고하시기 바랍니다.