2010-06-04 8 views
8

Sto provando a scrivere del codice che prenderà qualsiasi oggetto e lo convertirà in una rappresentazione String di quell'oggetto. La serializzazione non includerà alcuna proprietà transitoria e toString() è in genere un indirizzo di memoria per l'oggetto. Non posso aspettarmi che l'oggetto abbia un significato toString() definito o implementato Serializable.Java: Come convertire qualsiasi oggetto in una rappresentazione String dei dati

C'è un modo per determinare i dati in un oggetto e convertirlo in una stringa? Sarei disposto a scrivere qualcosa per attraversare la classe e usare la riflessione per trovare i dati, se necessario, ma speravo di trovare qualcosa di più semplice.

Qualsiasi suggerimento sarebbe apprezzato. Grazie.

+0

Non è chiaro se si desidera una rappresentazione informativa (per la visualizzazione, il debug) o una serializzazione testuale (in modo che l'oggetto possa essere ripristinato dalla stringa). – leonbloy

risposta

11

Grab apache's commonns-lang. Ha un ReflectionToStringBuilder che farà il riflesso delle stringhe per te.

Accetta anche gli stili per consentire all'utente di personalizzare l'output.

3

XMLEncoder potrebbe essere adatto. Serializza l'oggetto in XML, che è leggibile dall'uomo.

5

XStream è un'altra opzione per la produzione di XML dai propri oggetti.

2

java reflection api è un modo piuttosto efficace per eseguire il peer nell'oggetto, è possibile utilizzarlo per scrivere un convertitore personalizzato per estrarre le informazioni nel formato preferito.

È anche possibile utilizzare java's Marshaller api per convertirlo in file xml.

Problemi correlati