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!