[Java] Reflection Tutorial - Annotations. |
What are Java Annotations
Java5 에 소개된 기능으로, meta data 를 코드형태로 담을 수 있고, runtime 에 이 meta data 에 접근할 수 있다. pre-compiler 가 코드를 conversion 할 때 사용되기도 한다.
Annotation 은 interface 형태이다.
@Retention( RetentionPolicy.RUNTIME );
@Target( ElementType.TYPE )
public @interface TestAnnotation{
public String name();
public String value();
}
@TestAnnotation(name="variable", value="value")
public class TestClass{
// ...
}
@Retention( RetentionPolicy.RUNTIME ) 은 runtime 에 reflection 형태로 사용될 수 있다는 것을 의미한다.
이 구문이 없으면 runtime 에 이 annotation 은 사라진다. ( 구체적으로 compile time 에 제거한다. )
@Target( ElementType.TYPE ) 은 class, interface 와 같은 type 에 쓰인다는 것이다. TYPE 대신 METHOD, FIELD 를 줄수도 있다. 만약 이를 명시해주지 않으면 모든 곳에 사용될 수 있다.
Class Annotations
Annotations[] annotations = aClass.getAnnotations();
if ( annotaion instanceof TestAnnotation ){
((TestAnnotation )annotaion).name();
((TestAnnotation )annotaion).value();
}
Method Annotations
method.getDeclaredAnnotations();
Parameter Annotations
method.getParameterAnnotations();
Field Annotations
field.getDeclaredAnnotations();
field.getAnnotation( TestAnnotation.class );
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[Java] Reflection Tutorial - Generics (0) | 2013.12.27 |
---|---|
[android] LocalBroadcastManager 이야기. (0) | 2013.12.23 |
[android] Up Navigation 설정하기. (2) | 2013.12.19 |
[android] software button height (0) | 2013.12.17 |
[Java] Reflection Tutorial - Accessing Private Field, Private Method (0) | 2013.12.17 |
댓글