Recherche…


Déclarer une annotation

Les annotations permettent d'attacher des métadonnées au code. Pour déclarer une annotation, placez le modificateur d'annotation devant une classe:

annotation class Strippable

Les annotations peuvent avoir des méta-anotations:

    @Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.EXPRESSION)
    annotation class Strippable

Les annotations, comme les autres classes, peuvent avoir des constructeurs:

annotation class Strippable(val importanceValue: Int)

Mais contrairement aux autres classes, se limite aux types suivants:

  • les types correspondant aux types primitifs Java (Int, Long etc.);
  • cordes
  • classes (Foo :: class)
  • énumérations
  • autres annotations
  • tableaux des types listés ci-dessus

Méta-annotations

Lors de la déclaration d'une annotation, meta-info peut être inclus à l'aide des méta-annotations suivantes:

  • @Target : spécifie les types d'éléments pouvant être annotés avec l'annotation (classes, fonctions, propriétés, expressions, etc.)

  • @Retention spécifie si l'annotation est stockée dans les fichiers de classe compilés et si elle est visible lors de la réflexion au moment de l'exécution (par défaut, les deux sont vrais).

  • @Repeatable permet d'utiliser la même annotation sur un seul élément plusieurs fois.

  • @MustBeDocumented spécifie que l'annotation fait partie de l'API publique et doit être incluse dans la signature de classe ou de méthode indiquée dans la documentation de l'API générée.

Exemple:

@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
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow