Préface
À l'heure actuelle, de plus en plus de conceptions architecturales utilisent des annotations, telles que Spring3.0, Struts2 et d'autres cadres. Examinons d'abord la définition de l'annotation. Ce qui suit est un code qui utilise JDK 5 Annotation @target:
@Target ({elementType.Method}) @ rétention (retenderPolicy.runtime) @ hérité @ documentedpublic @interface asynlog {}1. Utilisation de @target
java.lang.annotation.target
Utilisé pour définir la portée de l'utilisation de l'annotation
java.lang.annotation.elementType
Target Spécifie les étendues d'annotation pour utiliser les collections d'énumération
2. Utilisation de ElementType
| Obtenez la valeur | Portée d'annotation |
| MÉTHODE | Peut être utilisé dans les méthodes |
| TAPER | Peut être utilisé sur les classes ou les interfaces |
| Annotation_type | Peut être utilisé sur les types d'annotation (types modifiés par @Interface) |
| CONSTRUCTEUR | Peut être utilisé dans les méthodes de construction |
| CHAMP | Peut être utilisé sur le domaine |
| Local_variable | Peut être utilisé sur les variables locales |
| EMBALLER | Utilisé pour enregistrer les informations sur les fichiers Java |
| PARAMÈTRE | Peut être utilisé sur les paramètres |
Voici un moment fort: ElementType. EMBALLER. Il n'est pas utilisé dans les classes générales, mais dans le package de fichiers fixe-info.java. Il convient de souligner ici que la dénomination doit être "Package-Info". Étant donné que Package-info.java n'est pas une classe juridique, l'utilisation d'Eclipse pour créer une classe invitera qu'il est illégal, vous devez donc créer Package-info.java en termes de création d'un fichier.
Par exemple, un ensemble de plages peut être utilisé pour définir:
@Target ({elementType.package, elementType.Method}) @ Rétention (RetenderPolicy.Runtime) @ Hérité @ documentedPublic @Interface Asynlog {}Ensuite, créez le fichier: package-info.java, avec le contenu comme suit:
La copie de code est la suivante:
@Asynlog
Package org.my.commons.logs.annotation;
Keynote: les annotations ne peuvent être utilisées que dans la plage définie par ElementType, sinon une erreur sera compilée. Par exemple: la portée contient uniquement ElementType.Method, ce qui signifie que l'annotation ne peut être utilisée que sur la méthode de la classe, et l'exception sera compilée en dehors de la portée d'utilisation.