我想寫一些代碼,將採取任何對象,並將其轉換爲該對象的字符串表示形式。序列化不會包含任何瞬態屬性,toString()通常是該對象的內存地址。我不能指望該對象具有一個有意義的toString()定義或實現Serializable。Java:如何將任何對象轉換爲數據的字符串表示
有什麼方法可以確定對象中的數據並將其轉換爲字符串?如果需要的話,我會願意寫一些東西來遍歷整個類並使用反射來查找數據,但是我希望找到一些更簡單的東西。
任何建議,將不勝感激。謝謝。
我想寫一些代碼,將採取任何對象,並將其轉換爲該對象的字符串表示形式。序列化不會包含任何瞬態屬性,toString()通常是該對象的內存地址。我不能指望該對象具有一個有意義的toString()定義或實現Serializable。Java:如何將任何對象轉換爲數據的字符串表示
有什麼方法可以確定對象中的數據並將其轉換爲字符串?如果需要的話,我會願意寫一些東西來遍歷整個類並使用反射來查找數據,但是我希望找到一些更簡單的東西。
任何建議,將不勝感激。謝謝。
抓住apache的commonns-lang。它有一個ReflectionToStringBuilder
,會爲你穿線。
它還接受樣式以允許您自定義輸出。
XMLEncoder
可能是合適的。它將對象序列化爲XML,這是人類可讀的。
XStream
是從對象中生成XML的另一種選擇。
Java反射api是一種非常強大的方式,可以用它來編寫一些自定義轉換器,將信息提取到您喜歡的格式中。
您還可以使用java的Marshaller API將其轉換爲直線xml。 http://java.sun.com/javase/6/docs/api/javax/xml/bind/Marshaller.html
您不清楚您是否需要信息表示(用於顯示,調試)或文本序列化(以便可以從字符串恢復對象)。 – leonbloy 2010-06-04 18:28:34