Pour l'un ou l'autreCatégorieclassExemple
,Nous réfléchissons(ObtenirClassExemple de classe
)Pour obtenir toutes ses informations.
Obtenir des informations sur le champ(FieldCatégorie)
ClassCatégorie
Voici quelques exemples de méthodes pour obtenirFieldCatégorie
:
Field getField(String name)
:Obtenir unpublicDefield(Inclure les parents)Field getDeclaredField(String name)
:Obtient l'une des classes actuelles en fonction du nom du champfield(Exclure les parents)Field[] getFields()
:Obtenez toutpublicDefield(Inclure les parents)Field[] getDeclaredFields()
:Obtenez tous lesfield(Exclure les parents)
Note::Peut être utilisévoid setAccessible(boolean flag)
Pour déterminer si vous pouvez accéder à un nonpublic
Champ.SiJVMLa période d'exécution existeSecurityManager
,Alors il vérifiera selon les règles,Il est possible d'arrêtersetAccessible(true)
.
UnFieldExemple de classe
Contient toutes les informations d'un champ:
String getName()
:Renvoie le nom du champClass<?> getType()
:Renvoie les informations du type de champ(ClassExemple de classe
,Par exemple:String.class
)int getModifiers()
: Renvoie les informations du modificateur pour le champ ,ModifierCatégorie
Méthode statiqueisXXX(Par exemple:Modifier.isPublic(int)
)Selonint
Valeur de retour à effectuer Opérations de bits Pour déterminer s'il y a un modificateur
Accès/Définir la valeur du champ(getter/setter)
Il n'est pas seulement possible d'obtenir Catégorieclass
Un des champs FieldExemple de classe
,Il peut également être utiliséObject get(Object obj)
Méthode d'acquisitionCatégorieclassExemple
La valeur spécifique du champ et void set(Object obj, Object value)
La méthode définit la valeur du champ .
Note::ParamètresobjPourCatégorieclassExemple
, Dans le cas d'un champ statique , Il suffit de mettre l'argument objComme suit:null
Obtenir des informations sur la méthode
Nous ne pouvons pas seulement passer parClassExemple de classe
AccèsFieldExemple de classe
Informations sur le champ ,La même chose.,Vous pouvez également obtenirMethodCatégorie
Pour obtenir des informations sur la méthode .
ClassCatégorie
Les exemples suivants sont fournis pour obtenir MethodCatégorie
:
Method getMethod(name, Class...)
:Obtenir unpublic
DeMethod
(Inclure les parents)Method getDeclaredMethod(name, Class...)
:Obtenir une des classes actuellesMethod
(Exclure les parents)Method[] getMethods()
:Obtenez toutpublic
DeMethod
(Inclure les parents)Method[] getDeclaredMethods()
:Obtenez tous lesMethod
(Exclure les parents)
Note:: Contient également void setAccessible(boolean flag)
Méthodes
UnMethodExemple
Contient toutes les informations d'une méthode :
String getName()
: Renvoie le nom de la méthodeClass<?> getReturnType()
: Méthode de retour type de valeur de retourClass<?>[] getParameterTypes()
: Renvoie le type de paramètre de la méthodeint getModifiers()
:Renvoie le modificateur de la méthode(Même chose.FieldCatégorie
)
Méthode d'appel
Quand on en aura un MethodExemple de classe
Heure,Peut passerObject invoke(Object obj, Object... args)
Appelez.
Note::C'est exact.Method
Appel d'instanceinvoke
C'est comme appeler la méthode ,invoke
Le premier paramètre de est l'Instance objet , C'est - à - dire dans quel cas la méthode est appelée , Les paramètres variables suivants doivent être conformes aux paramètres de la méthode . Dans le cas d'une méthode statique ,Il suffit de mettreobjComme suit:null
Lorsqu'une méthode est appelée avec réflexion , Toujours selon le principe du polymorphisme : C'est - à - dire que la méthode de dépassement du type réel est toujours appelée (Si elle existe).
版权声明
本文为[Eesujie]所创,转载请带上原文链接,感谢
https://cdmana.com/2021/11/20211125173332763d.html