Boucle sur tous les champs d'une classe Java
J'ai une classe Java qui a un certain nombre de Fields
.
Je voudrais faire une Boucle sur al les champs et faire quelque chose pour ceux qui sont nuls.
Par exemple si ma classe est:
public class ClassWithStuff {
public int inty;
public stringy;
public Stuff;
//many more fields
}
Dans un autre endroit, je ferais un ClassWithStuff
objet et je voudrais aller même si tous les champs de la classe. Un peu comme ceci:
for (int i = 0; i < ClassWithStuff.getFields().size(); i++) {
//do stuff with each one
}
Est-il de toute façon pour moi de réaliser cet objectif?
source d'informationauteur CodyBugstein
Vous devez vous connecter pour publier un commentaire.
Utilisation
getDeclaredFields
sur [Classe](http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Class.html)
Oui, avec la réflexion.
Utiliser le
Class
objet pour accéder àField
objets avec lagetFields()
méthode.Ensuite en boucle sur les champs. Cela fonctionne parce que tous les champs que vous avez déclarés sont
public
. Si elles ne sont pas, puis utilisezgetDeclaredFields()
qui permet d'accéder à tous lesFields
qui sont directement déclaré sur la classe,public
ou pas.Ce sont à la recherche est appelé la réflexion. La réflexion permet de regarder votre propre classe ou une autre classe pour voir de quoi il est fait. Java a la réflexion intégrée, vous pouvez l'utiliser tout de suite. Ensuite, vous pouvez faire des trucs comme -
Vous pouvez également l'utiliser pour obtenir des méthodes, constructeurs, etc, pour faire le semblable et le refroidisseur de trucs.