Аннотации для ограничения вариантов
В Kotlin (и Java) аннотация @Retention
используется для указания времени жизни аннотации, то есть, насколько долго аннотация должна быть доступна. Существуют три типа Retention
, каждый из которых имеет свои особенности и используется в различных случаях
Retention.SOURCE
:@Override
в Java, @StringDef
в Kotlin/Java.@Retention(AnnotationRetention.SOURCE)
annotation class ExampleSourceAnnotation
Retention.CLASS
(по умолчанию в Java):@Retention(AnnotationRetention.BINARY)
annotation class ExampleClassAnnotation
@Deprecated
, @Override
(в Kotlin), @Entity
в JPA.@Retention(AnnotationRetention.RUNTIME)
annotation class ExampleRuntimeAnnotation
Retention.SOURCE
:
Retention.CLASS
:
Retention.RUNTIME
:
Применение правильного уровня Retention
помогает оптимизировать использование ресурсов и повышает читаемость и поддержку кода.