zarmin
Messages postés49Date d'inscriptionmardi 28 juin 2005StatutMembreDernière intervention16 avril 2008
-
21 déc. 2006 à 11:15
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 2016
-
31 déc. 2006 à 18:10
Bonjour,
Je cherche a recuperer toutes les variables d'une classe (ou il n y a que des strings), et les remplir par de nouvelles valeurs.
Exemple de ma classe :
public class helloWold()
{
String myString1 = "test1";
String myString2 = "test2";
String myString3 = "test3";
String myString4 = "test4";
}
public static void main(String[] args) {
Field myField[] = helloWold().class.getFields();
for (int i = 0; i < myField.length; i++)
{
System.out.println(myField[i].getName()); //recupere la valeur de la String
}
}
Donc j'arrive bien a recuperer les valeurs de toutes les String mais maintenant je cherche a les remplir. J'ai essaye le set() mais je me sens un peu perdu avec les Fields... Est il possible de remplir une String ainsi ? et si oui comment ?
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 21 déc. 2006 à 11:52
Salut,
tiens voici un exemple :
import java.lang.reflect.Field;
public class HelloWold {
public String myString1 = "test1";
public String myString2 = "test2";
public String myString3 = "test3";
public String myString4 = "test4";
public static void main(String[] args) {
Field myField[] = HelloWold.class.getFields();
Object instance = new HelloWold();//récupération de l'instace sur l'objet HelloWold dans le but de pouvoir faire des get et set de la valeur
for (int i = 0; i < myField.length; i++) {
System.out.println(myField[i].getName()); //recupere le nom de la String
try {
System.out.println(myField[i].get(instance)); //recupere la valeur de la String
myField[i].set(instance, "toto"+(i+1));
System.out.println("new value = " + myField[i].get(instance)); //recupere la nouvelle valeur de la String
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
System.out.println();
System.out.println();
System.out.println();
System.out.println();
}
}
}
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 31 déc. 2006 à 18:10
salut,
maintenant si c'est un VRAI bean, les fields sont privés et on se prend un IllegalAccessException...dans ce cas, on peut utiliser les classes de java.beans et plus particulièrement Introspector et PropertyDescriptor...