Hello,

J'utilise maintenant un XMLEncoder pour créer mon XML de configuration.

J'ai un Object:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
createDefaultXML("output.xml",new Config01());
ça ne me créé rien dans le XML. Ca me donne ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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+