Créer et cibler des annotations personnalisées
Définissez des annotations avec des politiques de conservation et appliquez-les aux classes, fonctions et propriétés.
Créer et cibler des annotations personnalisées est une leçon Kotlin Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Kotlin Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Kotlin Academy comprend 4 leçons au total.
Pourquoi des annotations personnalisées ?
Les annotations sont des métadonnées attachées aux déclarations (classes, fonctions, propriétés et paramètres). Les annotations personnalisées vous permettent de marquer du code pour qu'il soit traité par des cadriciels, des outils de construction (KSP/KAPT) ou votre propre logique d'exécution.
Déclarer une annotation
Utilisez le mot-clé annotation class. Les classes d'annotations peuvent avoir des paramètres de constructeur (uniquement des types primitifs, String, KClass, des énumérations, d'autres annotations ou des tableaux de ces types) :
annotation class Validate(val minLength: Int = 1, val maxLength: Int = 255)Méta-annotations : @Target
@Target limite les endroits où l'annotation peut être utilisée. Cibles courantes : CLASS, FUNCTION, PROPERTY, FIELD, VALUE_PARAMETER, CONSTRUCTOR.
@Target(AnnotationTarget.PROPERTY, AnnotationTarget.VALUE_PARAMETER)
annotation class Validate(val minLength: Int = 1, val maxLength: Int = 255)@Retention : quand l'annotation est-elle disponible ?
@Retention contrôle la durée de vie de l'annotation :
SOURCE— supprimée après la compilationBINARY— stockée dans le fichier .class, mais invisible par réflexionRUNTIME— stockée et visible à l'exécution (valeur par défaut dans la plupart des cas)
@Retention(AnnotationRetention.RUNTIME)
@Target(AnnotationTarget.PROPERTY)
annotation class Validate(val minLength: Int = 1)@Repeatable : appliquer plusieurs fois la même annotation
Par défaut, une annotation ne peut être appliquée qu'une seule fois par déclaration. Marquez-la avec @Repeatable pour autoriser plusieurs applications :
@Repeatable
@Target(AnnotationTarget.FUNCTION)
annotation class Role(val name: String)Annoter les constructeurs et les paramètres
Vous pouvez annoter les paramètres du constructeur ainsi que les propriétés du constructeur primaire. Utilisez les cibles d'utilisation @field:, @get: ou @param: pour contrôler l'élément qui reçoit l'annotation :
data class User(
@field:Validate(minLength = 2) val name: String,
@field:Validate(minLength = 0, maxLength = 120) val email: String
)Cibles d'utilisation
Kotlin génère plusieurs éléments de code binaire à partir d'une seule propriété (champ, accesseur de lecture, accesseur d'écriture, paramètre). Les cibles d'utilisation indiquent lequel reçoit l'annotation :
@field:le champ de stockage@get:l'accesseur de lecture@set:l'accesseur d'écriture@param:le paramètre du constructeur
Annoter les classes
Les annotations sur une classe sont utiles pour la marquer en vue d'un traitement par un cadriciel (par exemple, pour indiquer qu'une classe est sérialisable, injectable ou rattachée à un module particulier) :
@Target(AnnotationTarget.CLASS)
@Retention(AnnotationRetention.RUNTIME)
annotation class Repository
@Repository
class UserRepository@MustBeDocumented
L'ajout de @MustBeDocumented garantit que l'annotation apparaît dans la documentation d'API générée. Utilisez-la pour les annotations qui font partie du contrat de votre API publique.
@MustBeDocumented
@Target(AnnotationTarget.CLASS)
annotation class PublicApi(val since: String)Paramètres d'annotation : valeurs par défaut et tableaux
Les paramètres peuvent avoir des valeurs par défaut et accepter des tableaux grâce au mot-clé vararg ou à des types de tableaux explicites :
annotation class Roles(vararg val value: String)
@Roles("ADMIN", "EDITOR")
class AdminPanelParamètres KClass dans les annotations
Les annotations peuvent référencer des types de classes via KClass :
annotation class Serializer(val using: KClass<out Any>)
@Serializer(using = GsonAdapter::class)
class EventVérification rapide
Quelle valeur de @Retention rend une annotation personnalisée accessible par réflexion Kotlin à l'exécution ?
Récapitulatif : annotations personnalisées
Points essentiels :
- Déclarer avec
annotation class; les paramètres sont limités aux types primitifs, à String, KClass, aux énumérations et aux tableaux @Target— où l'annotation peut être appliquée@Retention— quand elle est disponible (utiliser RUNTIME pour la réflexion)@Repeatable— autoriser plusieurs applications sur une même déclaration- Les cibles d'utilisation (
@field:,@get:, etc.) contrôlent l'élément de code binaire qui reçoit l'annotation
Apprends Kotlin avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 51
- Leçons
- 203
Questions Fréquemment Posées
La leçon « Créer et cibler des annotations personnalisées » est-elle gratuite ?
Oui — le texte complet de « Créer et cibler des annotations personnalisées » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Kotlin Academy, passe à CoddyKit PRO. Le cours Kotlin Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Créer et cibler des annotations personnalisées » ?
Définissez des annotations avec des politiques de conservation et appliquez-les aux classes, fonctions et propriétés. Tu pratiques Kotlin Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Kotlin Academy ?
Aucune expérience préalable n'est requise. Kotlin Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Créer et cibler des annotations personnalisées » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Kotlin Academy ?
Oui. Chaque leçon Kotlin Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Réflexion Kotlin : KClass, KFunction, KProperty
- Créer et cibler des annotations personnalisées
- Lire les annotations à l’exécution
- Validation et mappage fondés sur la réflexion