Maison  >  Article  >  Java  >  Une introduction détaillée aux annotations personnalisées Java

Une introduction détaillée aux annotations personnalisées Java

黄舟
黄舟original
2017-09-25 10:37:231111parcourir

Cet article présente principalement des informations pertinentes sur l'explication détaillée des exemples d'annotations personnalisées Java. Les amis qui en ont besoin peuvent se référer à

Explication détaillée des exemples d'annotations personnalisées Java

.

L'annotation de Java a été introduite après la version 5.0 et peut être utilisée pour créer de la documentation, suivre les dépendances dans le code et effectuer des vérifications au moment de la compilation. Les annotations permettent à la machine virtuelle de voir et de représenter certaines fonctions spéciales du programme. Le JDK fournit trois annotations : @Override, @SuppressWarning et @Deprecated. Il existe également des méta-annotations, @Target, @Retention, @Documented et @Inherited. Le rôle de la méta-annotation est d'annoter d'autres annotations.

Si vous voulez comprendre les annotations, vous devez comprendre les annotations personnalisées. La compréhension s'obtient par la réflexion.

Tout d'abord, personnalisons une annotation,


@Retention(value=RetentionPolicy.RUNTIME) 
public @interface MyTest { 
 
}

Ensuite, écrivons une démo de test


public class AnnotationDemo1 { 
  @MyTest 
  public void demo1(){ 
    System.out.println("方法1..."); 
  } 
   
  @MyTest 
  public void demo2(){ 
    System.out.println("方法2..."); 
  } 
  @Test 
  public void demo3(){ 
    System.out.println("方法3..."); 
  }

Enfin, toutes les méthodes avec des annotations Mytest dans AnnotationDemo1 sont exécutées. Vient ensuite la classe en cours d'exécution


public class DemoRunner { 
public static void main(String[] args) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, InstantiationException {  
    //获得测试类的class 
    Class clazz=AnnotationDemo1.class; 
    //获得class中的所有的方法 
    Method[] mothods=clazz.getMethods(); 
    //遍历每个方法, 
    for(Method method:mothods){ 
      boolean flag = method.isAnnotationPresent(MyTest.class); 
       System.out.println(flag); 
      if(flag){ 
        // 说明方法上有MyTest注解: 
        method.invoke(clazz.newInstance(), null); 
      } 
    } 
  } 
}
Au final, le test peut générer la méthode 1... et la méthode 2..., ce qui facilite la mise en œuvre d'annotations personnalisées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn