Java XStream可序列化对象

Java XStream可序列化对象,java,serialization,xstream,Java,Serialization,Xstream,我目前正在使用XStream序列化一些没有实现可序列化的对象。如果对象实现了可序列化,有没有方法告诉XStream使用Java的默认序列化,如果没有实现,就使用XML序列化?或者我需要在上面实现一个简单的层来检查吗 谢谢, 杰夫:这不是个好主意。Java序列化是二进制表示,XML是文本表示 以java.lang.String为例。这实现了可序列化,但显然您不希望字符串在XML中序列化为二进制blob。类似于数字类型等 XStream有一种注册自定义转换器的机制,我建议您使用它。如果选择将二进制数

我目前正在使用XStream序列化一些没有实现可序列化的对象。如果对象实现了可序列化,有没有方法告诉XStream使用Java的默认序列化,如果没有实现,就使用XML序列化?或者我需要在上面实现一个简单的层来检查吗

谢谢,
杰夫:这不是个好主意。Java序列化是二进制表示,XML是文本表示

java.lang.String
为例。这实现了可序列化,但显然您不希望字符串在XML中序列化为二进制blob。类似于数字类型等


XStream有一种注册自定义转换器的机制,我建议您使用它。如果选择将二进制数据序列化到XML文档中,则需要以某种方式对其进行编码,例如使用Base64编码。

很好的解释。我真的没想过把这个应用到整个对象图上。例如,如果我尝试序列化类X并且它是可序列化的,那么我会将它(及其整个对象图)序列化为一个二进制文件(因为它被标记为可序列化的,所以我假设它的对象图也是可序列化的)。如果它没有标记为可序列化,我将使用xml表示该对象(及其整个对象图)。原因是,我有很多不同的对象,我正在序列化以实现持久性,但有些对象具有巨大的XML表示形式,对于这些数据类型,我更愿意以另一种格式存储。