코틀린 언어 정리 6-7
Annotations
Use-site Targets
용도
지금까지 언급한, 애노테이션을(annotation) 특정 대상에 적용한 문법들은 모두 위치 기반 적용 방법을 사용한 것입니다.(대상 앞에 "@TA"와 같이 추가하는 방법) 하지만 위치 기반 적용 방법으로 애노테이션 지정 대상을 특정할 수 없는 경우, 적절한 용어의 키워드를 이용해 구체적으로 지정할 수 있는 방법을 제공합니다.
코틀린의 소스 코드에는 없었지만(눈에 보이지 않았지만) 이 코드(코틀린 소스 코드)를 자바 코드로 변환 시 나타나는 대상에 대해 애노테이션을 지정할 수 있는 방법을 제공합니다.
정리해 보면 크게 두 가지 분류로 생각해 볼 수 있습니다.
기존 보다 더 세분화 하여 대상을 지정하는 방법과 눈에 보이지 않는 대상을 지정하는 방법으로 나누어 볼 수 있습니다.
@file
파일 전체에 대해 annotation을 적용합니다.
@property
Kotlin에서 일반적으로 사용하는 property 선언에는 field, getter, setter 선언이 내포되어 있는데, property를 이용하면 각각을 별도로 지정할 수 있습니다.. Java에서는 보이지 않는 annotation입니다.
@field
Kotlin에서 일반적으로 사용하는 property 선언에는 field, getter, setter 선언이 내포되어 있는데, property 선언 앞에서 field를 사용하면 property가 포함하는 요소 중 field에만 annotation을 적용할 수 있습니다.
@get
Kotlin에서 일반적으로 사용하는 property 선언에는 field, getter, setter 선언이 내포되어 있는데, property 선언 앞에서 get을 사용하면 property가 포함하는 요소 중 get(getter)에만 annotation을 적용할 수 있습니다.
@set
Kotlin에서 일반적으로 사용하는 property 선언에는 field, getter, setter 선언이 내포되어 있는데, property 선언 앞에서 set을 사용하면 property가 포함하는 요소 중 set(setter)에만 annotation을 적용할 수 있습니다.
@receiver
annotation을 확장 함수, 확장 프로퍼티 선언에 포함되어 있는 receiver에 적용합니다.
@param
annotation을 생성자의 매개변수에 적용합니다.
@setparam
annotation을 property의 setter 의 매개변수에 적용합니다.
@delegate
delegate instance를 저장하는 필드에 적용합니다.
Use-site Targets 전체 예제
'코틀린( Kotlin )' 카테고리의 다른 글
코틀린 6-9 Annotations - Annotation instance 접근 (0) | 2020.04.21 |
---|---|
코틀린 6-8 Annotations - Java Annotations (0) | 2020.04.20 |
코틀린 6-6 Annotations - Annotation을 적용할 수 있는 대상들 (0) | 2020.04.18 |
코틀린 6-5 Annotations - Annotation class의 생성자 (0) | 2020.04.18 |
코틀린 6-4 Annotations - Usage(Annotation들의 간단한 사용 예) (0) | 2020.04.17 |