有人遇到过Java的通用对象到字符串格式化程序吗?
有人遇到过Java的通用对象到字符串格式化程序吗?我正在设想使用反射来发现任意对象的属性(可能只是一个JavaBean,但可能包括一些属性,它们是有人遇到过Java的通用对象到字符串格式化程序吗?,java,Java,有人遇到过Java的通用对象到字符串格式化程序吗?我正在设想使用反射来发现任意对象的属性(可能只是一个JavaBean,但可能包括一些属性,它们是集合s或映射s),并将对象格式化为字符串?在这种情况下,我无法控制目标类的toString()实现 类似的东西是否存在于某个地方?对象序列化程序通常就是这样做的。例如,序列化为文本(更准确地说是JS),但也有其他的 不过,就性能而言,反射并不是最佳选择。此外,如果toString()返回值中包含某些类的私有成员,则这些成员可能会非常无趣,并会垃圾邮件发
集合
s或映射
s),并将对象格式化为字符串
?在这种情况下,我无法控制目标类的toString()
实现
类似的东西是否存在于某个地方?对象序列化程序通常就是这样做的。例如,序列化为文本(更准确地说是JS),但也有其他的
不过,就性能而言,反射并不是最佳选择。此外,如果toString()返回值中包含某些类的私有成员,则这些成员可能会非常无趣,并会垃圾邮件发送您的输出。反射存在性能问题,但它可能是实现真正通用格式化程序的唯一方法。通用?我想不是。例如,一个序列化的套接字将是什么样子。{“created”:false,“bound”:false,“connected”:false,“closed”:false,“closeLock”:{},“shutIn”:false,“shutOut”:false,“impl”:{“@class”:“java.net.socksocketimpl”,“Socket”:{“@reference”:“./…”,“port”:{“@defined in”:“java.net.SocketImpl”、“$”:“0”},“localport”:0,“timeout”:0,“trafficClass”:0,“shut\u-rd”:false,“shut\u-wr”:false,“fdUseCount”:0,“fdLock”:{},“closePending”:false,“CONNECTION\u-NOT\u-RESET”:0,“CONNECTION\u-RESET\u-PENDING”:1,“CONNECTION\u-RESET”“:2等与XStream一起使用,这样做非常容易。谢谢。