Kotlin
Аннотации
Поиск…
Объявление аннотации
Аннотации - это средства привязки метаданных к коду. Чтобы объявить аннотацию, добавьте модификатор аннотации перед классом:
annotation class Strippable
Аннотации могут иметь мета-анотации:
@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.EXPRESSION)
annotation class Strippable
Аннотации, как и другие классы, могут иметь конструкторы:
annotation class Strippable(val importanceValue: Int)
Но в отличие от других классов, они ограничены следующими типами:
- типы, которые соответствуют примитивным типам Java (Int, Long и т. д.);
- строки
- классы (Foo :: class)
- перечислений
- другие аннотации
- массивы типов, перечисленных выше
Мета-аннотаций
При объявлении аннотации метаинформация может быть включена с использованием следующих мета-аннотаций:
@Target
: указывает возможные типы элементов, которые могут быть аннотированы аннотацией (классы, функции, свойства, выражения и т. Д.).@Retention
указывает,@Retention
ли аннотация в скомпилированных файлах классов и отображается ли она через отражение во время выполнения (по умолчанию оба значения являются true).@Repeatable
позволяет использовать одну и ту же аннотацию для одного элемента несколько раз.@MustBeDocumented
указывает, что аннотация является частью общедоступного API и должна быть включена в подпись класса или метода, указанную в созданной документации API.
Пример:
@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION,
AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.EXPRESSION)
@Retention(AnnotationRetention.SOURCE)
@MustBeDocumented
annotation class Fancy