Поиск…


Объявление аннотации

Аннотации - это средства привязки метаданных к коду. Чтобы объявить аннотацию, добавьте модификатор аннотации перед классом:

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


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow