gpt4 book ai didi

java - XStream - 在向界面添加函数后使用以前的序列化对象?

转载 作者:行者123 更新时间:2023-12-01 15:51:46 26 4
gpt4 key购买 nike

我使用 XStream 序列化实现接口(interface)的对象“A”:

interface MyInterface { 
String functionA();
}

MyInterface a = new MyInterface() {...}

现在界面变了,我又添加了一个功能:

interface MyInterface {
String functionA();
String functionB();
}

尝试反序列化它现在失败(列出的异常(exception)),因为接口(interface)发生了变化 - 但我可以让它以某种方式工作吗?

这是异常(exception):

com.thoughtworks.xstream.mapper.CannotResolveClassException: com.cf.TestSaveSerialization$1 : com.cf.TestSaveSerialization$1
at com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:68)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.DynamicProxyMapper.realClass(DynamicProxyMapper.java:71)

我查看了 XStream FAQ ,但没有任何关于更改功能的内容。有什么想法吗?

最佳答案

听起来更像是匿名类存在问题,而不是 XStream 或序列化机制本身。这些是真实的签名吗?您是否尝试过更改命名类(非匿名类)的签名?

关于java - XStream - 在向界面添加函数后使用以前的序列化对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5885930/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com