Les annotations de Java ont de multiples applications. Tout d'abord, elles peuvent être utilisées par le compilateur (ou ses extensions). Considérez par exemple le Remplacer annotation :
class Foo {
@Override public boolean equals(Object other) {
return ...;
}
}
Celui-ci est en fait intégré au JDK Java. Le compilateur signalera une erreur, si une méthode est étiquetée avec elle, ce qui fait pas surcharger une méthode héritée d'une classe de base. Cette annotation peut être utile afin d'éviter l'erreur courante, où vous avez réellement l'intention de remplacer une méthode, mais ne le faites pas, parce que la signature donnée dans votre méthode ne correspond pas à la signature de la méthode à remplacer :
class Foo {
@Override public boolean equals(Foo other) { // Compiler signals an error for this one
return ...;
}
}
Depuis le JDK7, les annotations sont autorisées sur tous les types. Cette fonctionnalité peut désormais être utilisée pour les annotations du compilateur telles que NotNull comme dans :
public void processSomething(@NotNull String text) {
...
}
qui permet au compilateur de vous avertir en cas d'utilisation inappropriée/non vérifiée de variables et d'éléments d'information. null valeurs.
Une autre application plus avancée des annotations concerne la réflexion et le traitement des annotations au moment de l'exécution. C'est (je pense) ce que vous aviez à l'esprit lorsque vous avez parlé des annotations comme "remplacement de la configuration basée sur XML". C'est le type de traitement des annotations utilisé, par exemple, par divers frameworks et normes JCP (persistance, injection de dépendances, etc.) afin de fournir les métadonnées et les informations de configuration nécessaires.
2 votes
Cdb, je ne suis pas sûr que vous compreniez totalement l'idée des primes - vous avez un tas de réponses plutôt bonnes ici, et sans aucune clarification de ce qui leur manque ou de ce que vous recherchez spécifiquement, vous avez ajouté une prime. (Vous avez également fait cela ici : stackoverflow.com/questions/1746550/ )
6 votes
Ok, je sais que c'est super vieux, mais @delfuego : si tu vas dire au PO qu'il utilise les primes de façon incorrecte, il pourrait être utile de poursuivre en expliquant aussi comment les utiliser correctement .