어노테이션(Annotation) #2
런타임시에 어노테이션 정보 사용하기
ㅁ 클래스에 적용된 어노테이션 정보 얻기
- 클래스.class의 어노테이션 정보를 얻는 메소드를 이용
ㅁ 필드, 생성자, 메소드에 적용된 어노테이션 정보 얻기
- 클래스.class의 당므 메소드를 이용해서
- java.lang.reflect 패키지의 Field, Constructor, Method 클래스의 배열을 얻어냄
리턴타입 |
메소드명(매개변수) |
설명 |
Field[] |
getFields() |
필드 정보를 Field 배열로 리턴 |
Constructor[] |
getConstructors() |
생성자 정보를 Constructor 배열로 리턴 |
Method[] |
getDeclaredMethods() |
메소드 정보를 Method 배열로 리턴 |
- Field, Constructor, Method 의 어노테이션 정보를 얻는 메소드를 이용
ex) 소스 |
class XXX { // 필드에 설정된 어노테이션 @Annotation -> 얻어온다. int field1; @Annotation -> 얻어온다. String fields
// 생성자에 설정된 어노테이션 @Annotation -> 얻어온다. XXX() {} @Annotation -> 얻어온다. XXX(int x) {}
// 생성자에 설정된 어노테이션 @Annotation -> 얻어온다. void method1() {} @Annotation -> 얻어온다. void method2() {} } |
ㅁ 어노테이션 정보를 얻기 위한 메소드
리턴타입 |
메소드명(매개변수) |
boolean |
isAnnotationPresent(Class<? extends Annotation > annotationClass) |
|
지정한 어노테이션이 적용되었는지 여부 Class 에서 호출했을 경우 상위 클래스에 적용된 경우에도 true를 리턴한다. |
Annotation |
getAnnotation(Class <T> annotationClass) |
|
지정한 어노테이션이 적용되어 있으면 어노테이션을 리턴하고 그렇지 않으면 null 을 리턴한다. Class 에서 호출했을 경우 상위 클래스에도 적용된 경우 Annotation을 리턴한다. |
Annotation[] |
getAnnotations() |
|
적용된 모든 어노테이션을 리턴한다. Class 에서 호출했을 경우 상위 클래스에 적용된 어노테이션도 모두 포함한다. 적용된 어노테이션이 없을 경우 길이가 0인 배열을 리턴한다. |
Annotation[] |
getDeclaredAnnotations() |
|
(필드, 생성자, 메소드) 직접 적용된 모든 어노테이션을 리턴한다. Class 에서 호출했을 경우 상위 클래스에 적용된 어노테이션은 포함되지 않는다. |
소스 작성
New > Annotation 클릭
'JAVA Programming' 카테고리의 다른 글
자동 타입 변환 (0) | 2015.04.27 |
---|---|
protected 접근 제한자 (0) | 2015.04.27 |
어노테이션(Annotation) #1 (0) | 2015.04.23 |
Getter와 Setter (0) | 2015.04.23 |
패키지와 접근 제한자 (0) | 2015.04.23 |