Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Sérialisation

3 réponses
Avatar
Joseph KHOURY
Bonjour

1/ J'ai deux classes A et B qui héritent de C.
Je sérialise A et B dans un fichier comment récupérer en lecture les objets
A et B.

2/ est-il possible de sérialiser une LinkedList<Personne> ? si oui comment
la récupérer en lecture ?

Merci de votre aide

3 réponses

Avatar
Lambda
"Joseph KHOURY" wrote in message
news:448475f9$0$12344$
Bonjour

1/ J'ai deux classes A et B qui héritent de C.
Je sérialise A et B dans un fichier comment récupérer en lecture les
objets

A et B.


Tu utilises un ObjectInputStream sur ton fichier.
Puis tu lis tes objets dans le flux en les castant en C : C tonObjet=(C)
ois.readObject();
et c'est fait. (tonObjet instanceof A) te permetra de savoir si c'est un A.

2/ est-il possible de sérialiser une LinkedList<Personne> ? si oui comment
la récupérer en lecture ?


Si LinkedList et Personne sont serialisables, tu peux certainement le faire.
LinkedList<Personne> myList=(LinkedList<Personne>) ois.readObject();
Un inconvenient c'est que tu auras un warning mais il n'y a aucun bon moyen
d'eviter ce warning, donc faut l'ignorer et eventuellement par securite
verifier ton objet quand tu le recuperes.

Avatar
TestMan
"Joseph KHOURY" wrote in message
news:448475f9$0$12344$
Bonjour

1/ J'ai deux classes A et B qui héritent de C.
Je sérialise A et B dans un fichier comment récupérer en lecture les
objets

A et B.


Tu utilises un ObjectInputStream sur ton fichier.
Puis tu lis tes objets dans le flux en les castant en C : C tonObjet=(C)
ois.readObject();
et c'est fait. (tonObjet instanceof A) te permetra de savoir si c'est un A.

2/ est-il possible de sérialiser une LinkedList<Personne> ? si oui comment
la récupérer en lecture ?


Si LinkedList et Personne sont serialisables, tu peux certainement le faire.
LinkedList<Personne> myList=(LinkedList<Personne>) ois.readObject();
Un inconvenient c'est que tu auras un warning mais il n'y a aucun bon moyen
d'eviter ce warning, donc faut l'ignorer et eventuellement par securite
verifier ton objet quand tu le recuperes.


@SuppressWarning("unchecked") ?

A+

TM


Avatar
thomas_escolan
Je dirais même +, et c'est facile à contrôler : Si ta collection et
les objets qui la composent IMPLEMENTENT l'interface
java.io.Serializable. Ce qui n'est malheureusement pas une obligation
mais prouve que l'on a réfléchi à la question.


2/ est-il possible de sérialiser une LinkedList<Personne> ? si oui co mment
la récupérer en lecture ?


Si LinkedList et Personne sont serialisables, tu peux certainement le fai re.