Kotlin Annotation 문서를 보니.. Kotlin에서는 어떻게 활용하는지...아리송 하다..
python에서는 annotation 을 이용해서 유효성 검사등에..활용했는데...
Annotation ?
용도
1. Kotlin/Android 내장 Built in Annotation
- Kotlin - Java 를 함께 사용 할때
@JvmName, JvmMultifileClass, @JvmStatic, @JvmField, @Throws, @JvmOverloads)
- 유효성 검사, 미사용 선언부, etc
@Deprecated, @SuppressWarnings, @IntRange
2. Annotation 에 대한 정보를 나타내기 위한 Meta annotation
@Target, @Retention, @Repeatable, @MustBeDocumented
3. 사용자 정의 Annotation
Kotlin/Android 내장 Built in Annotation
아래 Deprecated 를 코드를 보고 어떻게 동작되는지 대충 파악해 보자 ~
@Deprecated
Annotation 된 선언부를 사용안할때 사용한다. 버전 업되어 이전 코드를 사용 안할때...사용하면 되겠다.
사용법
remove() 함수위에 annotation 을 추가하여 client code에서 사용시 경고 혹는 에러를 발생시킨다.
IntelliJ IDEA 편집 창에서는 취소선(-) 으로 표시된다. (default : DeprecationLevel.WARNING)
버전 업그레이드되어 미사용 코드에 대해 annotation 을 사용하면 개발자에게 도움이 되겠다.
DeprecationLevel.ERROR 로 설정하면 Compile 시에 에러가 출력된다.
미사용 함수이니..새로운 함수 강제로 사용해라 ~~
실제 @Deprecated Annotation 코드
Deprecated 에 Meta Annotation 인 @Target, @MustBeDocumented 이 추가되어 있다.
@Target : annotation 사용할 수 있는 범위 지정
@MustBeDocumented : Generated Documentation 에 해당 Annotation 도 포함될 수 있는지 여부
@Retention : Scope 를 제한하는데 사용, (BINARY : compile time, binary 포함, reflection(::) 을 통해 접근 못함)
Level 에 따라 IDE 에서 Atction 이 달라진다.
이제 대충 봤으니....
사용자 정의 Annotation 을 만들어서 활용 할 수 있겠다.
가장 많이 볼수 있는 유효성 검사 annotation 만들어 보자 ~
'IT > Kotlin' 카테고리의 다른 글
Kotlin - function, Lambda, Reflection (0) | 2021.12.30 |
---|---|
Kotlin - Intellij IDEA 에서 Test(JUnit) 추가 (0) | 2021.12.16 |