java.lang.reflect의 핵심 리플렉션 기능을 이용하면, 메모리에 적재된 클래스의 정보를 가져오는 프로그램을 작성 할 수 있다. Class가 주어지면, 해당 객체가 나타내는 클래스의 생성자, 메서드, 필드등을 나타내는 Constructor, Method, Field 객체들을 가져 올수 있으며, 이 객체를 이용하여, 클래스의 멤버 이름이나, 필드 자료형, 메서드 시그니처 정보를 얻을 수 있다. 그리고, 해당 객체를 이용하여, 연결 되어 있는 생성자, 메서드, 필드들을 Reflectively 조작 할 수 있다. 단점- 컴파일 시점에 자료형을 검사하는 이점을 포기해야 함- 리플렉션 기능을 이용하는 코드는 난잡하다.- 성능이 낮다. 리플렉션이 필요한 프로그램- 클래스 브라우저- 객체 검사도구- 코드 분..