Maison >Java >javaDidacticiel >Réflexion basée sur Java
Comment créer un objet de classe ? Il existe deux manières :
class.forName("class name");
Class a = a.class;
La différence entre les deux est : forName() vous aidera à initialiser les variables statiques ; La classe a = a.class doit initialiser les variables statiques par elle-même ; la réflexion, le proxy dynamique ; par la réflexion, vous pouvez implémenter la méthode d'obtention de la classe, c'est-à-dire la méthode de l'objet, elle peut être modifiée ; un objet; nstanceof peut déterminer une certaine Si une classe appartient à une autre classe est utilisée pour déterminer quand la transformation vers le bas;
Grâce à l'objet de classe, vous pouvez obtenir : des constructeurs, des variables membres, des méthodes membres et des membres d'accès de une certaine classe ;
Obtenez les constructeurs :
class.getConstructors(); Obtenez les constructeurs publics
class.getDeclaredConstructors(); >class. getConstructor(null); Obtenez le constructeur public sans paramètre ;
Ces méthodes renvoient un Constructor con; l'objet de classe du constructeur peut être créé via con.newInstance("passage de paramètre") ;
Obtenir les variables membres : class.getFields(); Obtenir tous les champs publics
class.getDeclaredFields(); "name"); Obtenir un certain champ public spécifique (name);
class.getDeclaredField("phoneNum"); Obtenir un certain champ privé phoneNum
Return Field; .set(obj, "Andy Lau"); parmi eux, notre obj est un objet généré par notre classe
Méthode membre Get :
class.getMethods(); toutes les méthodes publiques; class.getDeclaredMethods();Obtenir toutes les méthodes;
class.getMethod("Nom de la méthode", String.class); ;
renvoie un objet Method ; alors ce que nous devons faire est comme un Field, générer d'abord un objet ; m.invoke(obj,20);
peut même refléter directement notre méthode main() ; class.getMethod("main", Stirng[].class); pour implémenter la réflexion, créer de nouvelles classes et exécuter des méthodes ; utiliser la réflexion pour éviter les vérifications génériques : nous pouvons même appeler le fichier de classe d'un certain conteneur, puis appeler sa méthode pour éviter le problème de la vérification générique ; De plus, nous pouvons également implémenter le mode proxy dynamique par réflexion :
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!