[java] 리플렉션을 이용한 클래스 정보 확인하기

자바에서는 리플렉션(reflection)을 이용하여 실행 중에 클래스의 정보를 확인하고 활용할 수 있습니다. 리플렉션을 사용하면 클래스의 필드, 메서드, 생성자 등의 정보를 동적으로 가져올 수 있습니다.

리플렉션을 통해 클래스 정보를 확인하는 방법은 다음과 같습니다.

1. Class 객체 생성

먼저, 리플렉션을 이용해서 클래스 정보를 확인하기 위해서는 해당 클래스의 Class 객체를 얻어와야 합니다.

Class clazz = YourClass.class;

또는

Class clazz = Class.forName("your.package.YourClass");

2. 필드 정보 확인

다음으로, 해당 클래스의 필드 정보를 확인할 수 있습니다.

Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
    System.out.println("Field Name: " + field.getName());
    System.out.println("Field Type: " + field.getType());
}

3. 메서드 정보 확인

클래스의 메서드 정보를 확인할 수도 있습니다.

Method[] methods = clazz.getDeclaredMethods();
for (Method method : methods) {
    System.out.println("Method Name: " + method.getName());
    System.out.println("Return Type: " + method.getReturnType());
}

4. 생성자 정보 확인

클래스의 생성자 정보를 확인할 수도 있습니다.

Constructor[] constructors = clazz.getDeclaredConstructors();
for (Constructor constructor : constructors) {
    System.out.println("Constructor Name: " + constructor.getName());
}

리플렉션은 클래스의 정보를 동적으로 가져와 활용할 수 있는 강력한 기능이지만, 잘못 사용할 경우 성능 저하나 보안상의 이슈를 발생시킬 수 있으니 주의가 필요합니다.

이와 관련하여 Oracle Java Documentation 등의 공식 자료를 참고하시기를 권장합니다.

위의 예제 코드는 자바에서 리플렉션을 이용하여 클래스 정보를 확인하는 간단한 방법을 보여줍니다.