Maison > Java > JavaBase > le corps du texte

Qu'est-ce que le mécanisme de réflexion en Java

(*-*)浩
Libérer: 2019-11-11 10:37:26
original
5446 Les gens l'ont consulté

Le mécanisme de réflexion Java est qu'à l'état d'exécution, pour n'importe quelle classe, toutes les propriétés et méthodes de cette classe peuvent être obtenues, et pour n'importe quel objet, n'importe laquelle de ses propriétés et méthodes peut être appelée.

Qu'est-ce que le mécanisme de réflexion en Java

Cette fonction d'obtention dynamique d'informations et d'appel dynamique de méthodes objet au moment de l'exécution est appelée mécanisme de réflexion Java. (Apprentissage recommandé : Cours Java )

Les classes de classe avec les bibliothèques de classes Java.lang.reflet prennent en charge le concept de classe Constructeur (chaque classe implémente l'interface Member). Les objets de ces types sont créés par la JVM au moment de l'exécution pour représenter les membres correspondants de classes inconnues.

De cette façon, vous pouvez utiliser le Constructeur pour créer de nouveaux objets, utiliser les méthodes get() et set() pour lire et modifier les champs associés à l'objet Field, et utiliser la méthode Invocation() pour appeler des méthodes. associé à l’objet Méthode.

De plus, vous pouvez également appeler des méthodes pratiques telles que getFields() getMethods() et getConstructors() pour renvoyer un tableau d'objets représentant des champs, des méthodes et des constructeurs. De cette façon, les informations sur l'objet anonyme peuvent être complètement déterminées au moment de l'exécution, sans rien savoir au moment de la compilation.

Obtenir des informations de classe via le mécanisme de réflexion

Créer des objets via le mécanisme de réflexion Avant de créer l'objet, vous devez obtenir l'objet constructeur de l'objet et créer l'objet correspondant. classe via l’objet constructeur.

Le code suivant crée une instance d'objet sans participation ni paramètres pendant l'exécution. Étant donné que les méthodes getConstructor() et newInstance() génèrent de nombreuses exceptions (vous pouvez les visualiser via le code source), voici l'abréviation de lancer directement une exception, la même ci-dessous.

package com.jas.reflect;

import java.lang.reflect.Constructor;

public class ReflectTest {
    public static void main(String[] args) throws Exception {

        Class clazz = null;
        clazz = Class.forName("com.jas.reflect.Fruit");
        Constructor<Fruit> constructor1 = clazz.getConstructor();
        Constructor<Fruit> constructor2 = clazz.getConstructor(String.class);

        Fruit fruit1 = constructor1.newInstance();
        Fruit fruit2 = constructor2.newInstance("Apple");

    }
}

class Fruit{
    public Fruit(){
        System.out.println("无参构造器 Run...........");
    }
    public Fruit(String type){
        System.out.println("有参构造器 Run..........." + type);
    }

}
Copier après la connexion

Sortie :

无参构造器 Run...........
有参构造器 Run...........Appl
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!