더북(TheBook)

4.5.1 클래스 멤버 나열


java.lang.reflect 패키지에 속한 Field, Method, Constructor 클래스는 각각 클래스의 필드, 메서드, 생성자를 나타낸다. 이들 클래스에는 해당 멤버의 이름을 반환하는 getName 메서드가 있다. Field 클래스에는 getType 메서드가 있다. getType 메서드는 필드 타입을 기술하는 Class 타입 객체를 반환한다. MethodConstructor 클래스에는 매개변수의 타입을 알려 주는 메서드가 있고, Method 클래스에는 반환 타입을 알려 주는 메서드가 있다.

이 세 클래스에 모두 getModifiers 메서드가 있다. getModifiers 메서드는 사용된 제어자(public이나 static 같은)를 기술하는 정수를 반환한다. 이 정수의 각 비트는 사용된 제어자에 따라 설정(1)되어 있거나 해제(0)되어 있다. Modifier.isPublic이나 Modifier.isStatic 같은 정적 메서드를 사용하면 getModifiers가 반환하는 정수를 분석할 수 있다. Modifier.toString은 모든 제어자에 대응하는 문자열을 반환한다.

Class 클래스의 getFields, getMethods, getConstructors 메서드는 각각 해당 클래스가 지원하는 공개(public) 필드, 메서드, 생성자의 배열을 반환한다. 이 배열에는 상속받은 공개 멤버도 포함된다. getDeclaredFields, getDeclaredMethods, getDeclaredConstructors 메서드는 각각 해당 클래스에 선언된 모든 필드, 메서드, 생성자로 구성된 배열을 반환한다. 이 배열에는 비공개와 패키지, 보호 멤버까지 포함되지만 슈퍼클래스의 멤버는 포함되지 않는다.

Executable 클래스(MethodConstructor의 공통 슈퍼클래스)의 getParameters 메서드는 해당 메서드나 생성자의 매개변수를 기술하는 Parameter 객체의 배열을 반환한다.

Note ≣

클래스를 -parameters 플래그로 컴파일할 때만 실행 시간에 매개변수 이름을 얻을 수 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.