Reflection
참조 : http://java.sun.com/docs/books/tutorial/reflect/index.html
The reflection API represents, or reflects, the classes, interfaces,
and objects
in the current Java Virtual Machine.
You'll want to use the reflection API if you are writing development tools
such as debuggers, class browsers, and GUI builders.
With the reflection API you can:
relection API는 현재 JVM에 있는 클래스, 인터페이스, 객체들을 나타낸다. 이 기능은 debugger, class browser, GUI builder를 만들 때 사용할 수 있다. reflection API를 사용하여 다음과 같은 경우에 사용 할 수 있다.
- 객체의 class가 알고 싶을 때
- class의 식별자, 필드, 메소드 생성자와 슈퍼 클래스들에 대한 정보를 얻고 싶을 때
- 어떤 상수와 메소드 정의가 인터페이스에 속해 있는지 알고 싶을 때
- runtime 때에서야 알 수 있는 클래스의 객체를 생성하려고 할 때
- runtime 때에서야 알 수 있는 필드의 이름을 프로그램 작성시 모르더라도 객체의 필드에 값을 set 또는 get 하고 싶을 때
- runtime 때에서야 알 수 있는 메소드의 이름을 프로그램 작성시 모르더라도 객체의 메소드를 호출하고 싶을 때
- runtime 때에서야 알 수 있는 배열의 타입과 크기를 프로그램 작성시 모르더라도 새로운 배열을 생성하고 싶을 때
사용하는 방법은 Object 클래스에 있는 getClass() 메소드를 사용하여 Class 타입의 객체를 받아온 다음 Class API를 주로 사용하는 것 같습니다.