[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 등의 공식 자료를 참고하시기를 권장합니다.
위의 예제 코드는 자바에서 리플렉션을 이용하여 클래스 정보를 확인하는 간단한 방법을 보여줍니다.