본문
171211(월) - @Target
@Tartget
- annotation type이 적용가능한 context를 나타낸다.
- annotation이 적용가능한 declaration contexts 와 type contexts은 JLS 9.6.4.1에 명시
- code상에서 java.lang.annotation.ElementType
. enum constants로 구성된다.
- if @Target meta-annotation이 annotation type T에 없다면, Type t의 annotation은 parameter declaration을 제외한 임의의 선언을 위한 modifier로 기술 될 수 있다.
- 예) Target meta-annotation은 선언된 type 자체가 meta-annotation임을 나타냄
annotation type선언에만 사용 가능
@Target(ElementType.ANNOTATION_TYPE)
public @interface MetaAnnotationType {
...
}
- complex annotation type에서 member annotation type으로 사용되도록 지정
- 직접 annotation을 다는데는 사용 불가능
@Target({})
public @interface MemberType {
...
}
ElementType
- annotation이 Java program에 나타날 수 있는 syntactic location의 simple classification을 제공
- annotation이 나타날 수 있는 syntactic locations
1. annotation declaration에 적용되는 declaration context
2. annotation declaration, expressions에 적용되는 type context
Enum values | |
---|---|
ElementType | ANNOTATION_TYPE Annotation type declaration |
ElementType | CONSTRUCTOR Constructor declaration |
ElementType | FIELD Field declaration (includes enum constants) |
ElementType | LOCAL_VARIABLE Local variable declaration |
ElementType | METHOD Method declaration |
ElementType | PACKAGE Package declaration |
ElementType | PARAMETER Formal parameter declaration |
ElementType | TYPE Class, interface (including annotation type), or enum declaration |
ElementType | TYPE_PARAMETER Type parameter declaration |
ElementType | TYPE_USE Use of a type |
'Mobile > RxJava2' 카테고리의 다른 글
171213(수) - RxJava2 (create) (0) | 2017.12.13 |
---|---|
171211(월) - @Volatile (0) | 2017.12.11 |
171208(금) - @Qualifiers (0) | 2017.12.08 |
171206(수) - @Scope, @Retention (0) | 2017.12.06 |
170904(월) - RxJava2 (Infinite scroll with RxJava2, Kotlin) (0) | 2017.09.04 |
댓글