[Serialisation] methode générique ?
Bonjour,
Suite à ce cour sur la sérialisation, j'ai souhaité le mettre en application et je me posais une question.
Est-il possible de faire une fonction qui permettrait de sérialiser n'importe quel objet qui implémenterai le serializable ?
quelque chose du genre :
Code:
public void serializer(Object o){
Prenons deux classes. Avion et Bateau.
Actuellement, j'utiliserai ceci pour faire la sérialisation :
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
|
public void serializerAvion(Avion a){
try {
// ouverture d'un flux de sortie vers le fichier "avion.serial"
FileOutputStream fos = new FileOutputStream("avion.serial");
// création d'un "flux objet" avec le flux fichier
ObjectOutputStream oos= new ObjectOutputStream(fos);
try {
// sérialisation : écriture de l'objet dans le flux de sortie
oos.writeObject(a);
// on vide le tampon
oos.flush();
System.out.println(a + " a ete serialise");
} finally {
//fermeture des flux
try {
oos.close();
} finally {
fos.close();
}
}
}
catch(IOException ioe) {
ioe.printStackTrace();
}
} |
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
|
public void serializerBateau(Bateau b){
try {
// ouverture d'un flux de sortie vers le fichier "bateau.serial"
FileOutputStream fos = new FileOutputStream("bateau.serial");
// création d'un "flux objet" avec le flux fichier
ObjectOutputStream oos= new ObjectOutputStream(fos);
try {
// sérialisation : écriture de l'objet dans le flux de sortie
oos.writeObject(b);
// on vide le tampon
oos.flush();
System.out.println(b + " a ete serialise");
} finally {
//fermeture des flux
try {
oos.close();
} finally {
fos.close();
}
}
}
catch(IOException ioe) {
ioe.printStackTrace();
}
} |
Si j'avais 36 classes, je serais obligé de décrire 36 méthodes... pour rien >.<
Comment pourrais-je rendre cette sérialisation générique ?
Merci à vous :)