Maison  >  Article  >  Java  >  Comment le mécanisme de réflexion Java fonctionne-t-il avec le réflecteur lui-même ?

Comment le mécanisme de réflexion Java fonctionne-t-il avec le réflecteur lui-même ?

WBOY
WBOYoriginal
2024-05-04 08:57:02399parcourir

Le mécanisme de réflexion Java permet d'explorer le réflecteur lui-même et vous pouvez obtenir des annotations sur l'objet Méthode par réflexion, y compris le type et la valeur de l'annotation.

Comment le mécanisme de réflexion Java fonctionne-t-il avec le réflecteur lui-même ?

Le mécanisme de réflexion Java est utilisé dans le réflecteur lui-même

Le mécanisme de réflexion Java permet aux programmes d'inspecter et de modifier la structure d'une classe au moment de l'exécution, mais est rarement utilisé pour explorer le mécanisme de réflexion lui-même. Cet article va montrer à partir d'un cas pratique comment utiliser le mécanisme de réflexion pour étudier le fonctionnement du réflecteur.

Cas : Obtenez l'Annotation sur l'objet Method Method 对象上的 Annotation

我们可以使用反射来获取 Method 对象上附加的注解。以下是示例代码:

import java.lang.annotation.Annotation;
import java.lang.reflect.Method;

public class Main {
    public static void main(String[] args) {
        try {
            // 获取 Method 对象
            Method method = Main.class.getMethod("annotatedMethod");
            
            // 使用反射获取注解
            Annotation[] annotations = method.getAnnotations();
            
            // 遍历并打印注解
            for (Annotation annotation : annotations) {
                System.out.println(annotation);
            }
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        }
    }
    
    @MyAnnotation("Hello, World!")
    public void annotatedMethod() { }
}

结果:

@MyAnnotation(value=Hello, World!)

解析:

  • 我们首先使用 Main.class.getMethod("annotatedMethod") 获取 Main 类的 annotatedMethod 方法的 Method 对象。
  • 然后,我们使用 method.getAnnotations() 获取该方法上的所有注解,并将其存储在 annotations 数组中。
  • 最后,我们遍历 annotations 数组,并打印每个注解的类型和值。

这个示例展示了如何使用反射机制来获取 Method

    Nous pouvons utiliser la réflexion pour obtenir les annotations attachées à l'objet Method. Voici l'exemple de code :
  • rrreee
  • Résultat :
  • rrreee
Analyse : 🎜🎜🎜🎜 Nous utilisons d'abord Main.class.getMethod("annotatedMethod") pour obtenir Main L'objet Method de la méthode annotatedMethod de la classe. 🎜🎜Ensuite, nous utilisons method.getAnnotations() pour obtenir toutes les annotations sur la méthode et les stocker dans le tableau annotations. 🎜🎜Enfin, nous parcourons le tableau annotations et imprimons le type et la valeur de chaque annotation. 🎜🎜🎜Cet exemple montre comment utiliser le mécanisme de réflexion pour obtenir des annotations sur un objet Method. Le même principe peut être utilisé pour explorer tout autre aspect du mécanisme de réflexion, par exemple : 🎜🎜🎜 Récupérer la classe parent et l'interface de la classe 🎜🎜 Récupérer le type et la valeur du champ 🎜🎜 Modifier les propriétés de la classe ( tels que les droits d'accès) 🎜🎜

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