Kotlin
Annotations
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.)@Retentionspé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).@Repeatablepermet d'utiliser la même annotation sur un seul élément plusieurs fois.@MustBeDocumentedspé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