java.lang.annotation.ElementType
:
Un type d’élément de programme. Les constantes de ce type énuméré fournissent une classification simple des éléments déclarés dans un programme Java. Ces constantes sont utilisées avec le type de méta-annotation Target
pour spécifier l’emplacement légal d’un type d’annotation.
Il existe les constantes suivantes:
Quelqu’un peut-il expliquer ce que chacun d’eux est (où ils seraient annotés dans le code réel)?
Ceci résume les principaux:
@CustomTypeAnnotation public class MyAnnotatedClass { @CustomFieldAnnotation private Ssortingng foo; @CustomConstructorAnnotation public MyAnnotatedClass() { } @CustomMethodAnnotation public Ssortingng bar(@CustomParameterAnnotation Ssortingng str) { @CustomLocalVariableAnnotation Ssortingng asdf = "asdf"; return asdf + str; } }
ANNOTATION_TYPE est une annotation sur une autre annotation, comme ceci:
@CustomAnnotationTypeAnnotation public @interface SomeAnnotation { .. }
Le package est défini dans un fichier package-info.java
dans le package, comme ceci:
@CustomPackageLevelAnnotation package com.some.package; import com.some.package.annotation.PackageLevelAnnotation;
Pour plus d’informations sur les annotations PACKAGE, cliquez ici et ici .
Disons que l’annotation à laquelle vous spécifiez ElementType
s’appelle YourAnnotation
:
ANNOTATION_TYPE – Déclaration de type d’annotation. Note: Cela va sur d’autres annotations
@YourAnnotation public @interface AnotherAnnotation {..}
CONSTRUCTOR – Déclaration du constructeur
public class SomeClass { @YourAnnotation public SomeClass() {..} }
FIELD – Déclaration sur le terrain (comprend les constantes enum)
@YourAnnotation private Ssortingng someField;
LOCAL_VARIABLE – Déclaration de variable locale. Note: Ceci ne peut pas être lu à l’exécution, il est donc utilisé uniquement pour les @SuppressWarnings
de compilation, comme l’annotation @SuppressWarnings
.
public void someMethod() { @YourAnnotation int a = 0; }
METHODE – Déclaration de méthode
@YourAnnotation public void someMethod() {..}
PACKAGE – Déclaration de package. Note: Ceci ne peut être utilisé que dans package-info.java
.
@YourAnnotation package org.yourcompany.somepackage;
PARAMETRE – Déclaration de paramètre
public void someMethod(@YourAnnotation param) {..}
TYPE – Classe, interface (y compris le type d’annotation) ou déclaration enum
@YourAnnotation public class SomeClass {..}
Vous pouvez spécifier plusieurs éléments ElementType
pour une annotation donnée. Par exemple:
@Target({ElementType.CONSTRUCTOR, ElementType.METHOD})
TYPE :
Annotation:
@Target({ElementType.TYPE}) // This annotation can only be applied to public @interface Tweezable { // class, interface, or enum declarations. }
et un exemple d’utilisation:
@Tweezable public class Hair { ... }