XMLEncoder et valeurs par défaut
Hello,
J'utilise maintenant un XMLEncoder pour créer mon XML de configuration.
J'ai un Object:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| public class Config01{
private boolean booleanP = false;
private Boolean booleanS = false;
private byte byteS = 0;
private Byte byteP = 0;
private short shortS = 0;
private Short shortP = 0;
private int integerS = 0;
private Integer integerP = 0;
private long longS = 0;
private float floatS = 0;
private double doubleS = 1.0;
private Double doubleP = 1.0;
private String string = "aaa";
private int[] tabIntP = {1,2,3};
private Double[] tabDoubleS = {1.1,2.2,3.3};
private String[] tabString = {"I","am","nothing"};
public Config01() {
}
} |
Ensuite, je créé le XML avec cette méthode:
Code:
1 2 3 4 5 6 7 8 9 10
| public static void createDefaultXML(String fileName, Object configurationObject) throws FileNotFoundException{
XMLEncoder encoder = new XMLEncoder(new FileOutputStream(fileName));
try {
encoder.writeObject(configurationObject);
System.out.println("Fichier créé");
} finally {
encoder.close();
}
} |
Seulement mon problème est que si je l'appel comme ca:
Code:
createDefaultXML("output.xml",new Config01());
ça ne me créé rien dans le XML. Ca me donne ça:
Code:
1 2 3 4
| <?xml version="1.0" encoding="UTF-8"?>
<java version="1.6.0_01" class="java.beans.XMLDecoder">
<object class="Config01"/>
</java> |
Il faut que je spécifie les valeurs par défaut avant de créer le XML, comme cela:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| Config01 config01 = new Config01();
config01.setBooleanP(true);
config01.setBooleanS(true);
config01.setByteP((byte)5);
config01.setByteS((byte)6);
config01.setDoubleP((double)45);
config01.setDoubleS((double)46);
config01.setFloatS((float)5.2);
config01.setIntegerP(456);
config01.setIntegerP(47);
config01.setLongS(8);
config01.setShortP((short)22);
config01.setShortS((short)23);
config01.setString("OK");
config01.setTabDoubleS(new Double[] {(double)1,(double)2,(double)3,(double)4,(double)5,(double)6});
config01.setTabIntP(new int[] {9,8,7,6,5});
config01.setTabString(new String[] {"I","am","an","array","!"});
Configuration.createDefaultXML("output.xml",config01); |
et là c'est nickel!
Mais moi je veut pas devoir faire ca, je veux qu'il prenne les valeures par défaut de l'objet... Comment je peux faire?
Je suis assez clair??
Merci d'avance!
A+