# Table of Contents
# 어노테이션 클래스 선언방법
Kotlin에서 어노테이션은 다음과 같이 선언할 수 있다.
annotation class IsAvailable
이렇게 선언한 어노테이션은 다음과 같이 사용한다.
fun main() {
// 어노테이션 사용
@IsAvailable var name: String = "name"
}
어노테이션은 데이터를 가질 수도 있다.
annotation class IsAvailable(val message: String)
데이터는 다음과 같이 선언할 수도 있다.
annotation class IsAvailable {
val message: String
}
데이터가 있는 어노테이션은 다음과 같이 사용한다.
fun main() {
@IsAvailable("IsNameAvailabe") var name: String = "name"
}
# 어노테이션의 위치
어노테이션은 클래스 앞에 붙일 수 있다.
@MyAnnotation
class MyClass {
...
}
어노테이션은 메소드 앞에도 사용할 수 있다.
class MyClass {
@MyAnnotation fun myMethod(myProperty: Int): Int {
...
}
}
어노테이션을 생성자 앞에 붙일 수 있다. 이 때는 키워드 constructor
를 명시해야 한다.
class MyClass @MyAnnotation constructor(dependency: ... )
어노테이션은 클래스의 멤버변수 앞에도 붙일 수 있다.
@Inject lateinit var cat: Cat
메소드의 매개변수 앞에도 붙일 수 있다.
fun myMethod(@MyAnnotation myProperty: Int): Int {
return 1
}
함수의 반환값 앞에도 붙일 수 있다.
fun myMethod(myProperty: Int): Int {
return ( @MyAnnotation 1 )
}