Logger un objet entierement

Logger un objet entierement - Java - Programmation

Marsh Posté le 02-06-2008 à 10:14:22    

Salut salut  :hello:  
 
Je suis a la recherche d'un morceau de code qui me permettrait de logger l'intégralité d'un objet java.
Je passe en paramètre mon objet (une instance de classe) et j'aimerais obtenir un String qui contient tout le contenu de mon objet.
 
j'ai deja trouvé des api qui pourraient faire ca, comme XStream qui permet a partir d'un objet java d'obtenir son equivalent en xml.
Malheureusement, je n'ai pas le droit d'utiliser de telles api.
 
A l'aiiiiiiiiiiiiiiide  ;)  

Reply

Marsh Posté le 02-06-2008 à 10:14:22   

Reply

Marsh Posté le 02-06-2008 à 10:42:29    

Suffit d'overrider la méthode toString pour sortir ce dont tu as besoin [:spamafote]

 

XStream c'est de la sérialisation XML pour transférer les objets via le réseau ou les enregistrer sur le disque, c'est complètement con de vouloir utiliser une usine à gaz pareil pour du pauvre logging pourri [:pingouino]


Message édité par masklinn le 02-06-2008 à 10:43:51

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 02-06-2008 à 10:45:42    

Le probleme c'est que je ne possede pas le source des objets que je veux logger donc je ne peux pas overrider le toString().
De plus ces classes comportent quelques centaines de champs donc je me vois pas faire un truc a la mano :D

Reply

Marsh Posté le 02-06-2008 à 10:58:55    

Il te reste l'introspection.
 
A l'aide de la méthode Class.getDeclaredFields(), tu peux obtenir les attributs

Reply

Marsh Posté le 02-06-2008 à 11:10:15    

oui biensur mais la je vais devoir me tapper une methode récursive avec de la réflexion dans tous les sens (et je suis pas sur d'y arriver en plus :D )
En fait, il me faudrait un truc générique qui puisse me logger n'importe quel objet.

Reply

Marsh Posté le 02-06-2008 à 11:48:07    

http://commons.apache.org/beanutil [...] ng.Object)


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 02-06-2008 à 14:18:34    

merci mais cette methode ne m'affiche que le contenu des mes champs de type "simple" (genre les string ou les double".
Des qu'il s'agit d'une classe qu'on a créé, il n'affiche plus rien.
 
Mais bon j'ai fait le forcing avec mon gentil chef et on va utiliser XStream qui en 2 lignes de code vous génère l'arbre XML complet de votre objet.
 
Merci de votre aide

Reply

Marsh Posté le 02-06-2008 à 15:28:40    

bob_eponge a écrit :

Des qu'il s'agit d'une classe qu'on a créé, il n'affiche plus rien.


Cette classe doit aussi présenter un toString qui va bien.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed