如果没有,也许你可以告诉我为什么。
当我的类被序列化时,我得到 NotSerializableException。
在类内部,我将这个匿名类传递给一个方法:
new org.apache.commons.collections.Closure() {
...
};
这个问题仍然没有答案。我想知道是否有实现 Serializable 的标准 Closure 接口
如果没有,也许你可以告诉我为什么。
当我的类被序列化时,我得到 NotSerializableException。
在类内部,我将这个匿名类传递给一个方法:
new org.apache.commons.collections.Closure() {
...
};
这个问题仍然没有答案。我想知道是否有实现 Serializable 的标准 Closure 接口
类中的所有引用也必须是 Serializable 类型,甚至是 Closure 类型。是接口吗?它必须扩展 java.io.Serializable 接口。
IE:
interface Closure extends java.io.Serializable {
...
}
class YourClass implements java.io.Serializable {
private Closure closure;
...
public void setClosure(Closure closure) {
this.closure = closure;
}
}
...
private static void main(String[] args) {
YourClass y = new YourClass();
y.setClosure(new Closure() {
...
});
...
编辑,澄清。:)
您在这里的主要问题是嵌套类没有标准化的序列形式。另请注意,如果您在实例方法中,外部类对象也将被序列化(通过未指定名称的字段)。
如果您不关心您的代码是否在完全随机的点停止工作,您可能需要考虑一个普通的本地类来代替(或除此之外)和匿名内部类。
是否有可序列化的标准闭包接口?
我猜不会。