首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CGLib和序列化

CGLib和序列化
EN

Stack Overflow用户
提问于 2010-12-15 23:34:32
回答 1查看 1.5K关注 0票数 2

我想要做的是序列化一个实现命令模式的类,这样我以后就可以运行它了。在最好的情况下,我想序列化一个匿名类(我知道这样做的问题)。

让它有点复杂的是,我在一个spring环境中,我希望序列化的匿名类是在一个将由CGLib代理的类中定义的。

我的第一次尝试:

代码语言:javascript
复制
public interface CallLater implements Serializeable {
     public run();
}


@Service
public class TestService implements Serializeable {

     public doSomethingMore() { /* Code */ }

     public void doSomething() {

         CallLater job = new CallLater() {
            private static final long serialVersionUID = 4415017504667122645L;

            @Override
            public void run() {
               doSomethingMore();

            }
         }

         storeJob(job);
    }
}

例如,storeJob将序列化对象并将其存储以备以后使用,而失败的正是这一部分。我没有包含这方面的代码,但这只是一个ObjectOutputStream调用

我知道整个TestService类都需要序列化。问题是它被包装成抛出了一个CGLib代理,并且这个代理没有实现可序列化(我猜这个代理不能被序列化)。

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2010-12-16 05:31:47

你应该只序列化"target“。所以你有一个对代理的引用,对吗?可以获取该代理的目标,以便您可以对其进行序列化。

要做的事情是在序列化之前对应用程序进行断点,并在上下文中挖掘所需的属性。或者可能有一些代理实用程序或其他东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4451695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档