我想要做的是序列化一个实现命令模式的类,以便我以后可以运行它。最重要的是,我想序列化一个匿名类(我知道这个问题)
让它有点复杂的是我在一个春天的环境中,我希望序列化的匿名类是在一个将由 CGLib 代理的类中定义的。
我最初的尝试:
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 代理并且这个代理没有实现可序列化(我的猜测是这个不能被序列化)。
非常感谢任何帮助。