我目前正在使用XStream来序列化一些没有实现Serializable的对象。有没有办法告诉XStream使用Java的默认序列化,如果对象确实实现了Serializable,并且如果不实现则回退到XML序列化?或者我需要在它上面实现一个简单的层来检查?
感谢, 杰夫
答案 0 :(得分:1)
这不是一个好主意。 Java序列化是二进制表示,XML是文本表示。
以java.lang.String
为例。这实现了Serializable
,但显然你不希望你的字符串在XML中被序列化为二进制blob。类似于数字类型等的东西
XStream有一个注册自定义转换器的机制,我建议你使用它。如果您选择将二进制数据序列化到XML文档中,则需要以某种方式对其进行编码,例如:使用Base64编码。