java - 是否有可序列化的标准闭包接口(interface)?

标签 java serialization closures

如果没有,也许你可以告诉我原因。

当我的类被序列化时,我得到 NotSerializableException。

在类中,我将这个匿名类传递给一个方法:

new org.apache.commons.collections.Closure() {
   ...
};

这个问题仍然没有答案。我想知道有没有实现Serializable的标准Closure接口(interface)

最佳答案

类中的所有引用也必须是可序列化类型,甚至是闭包类型。它是一个接口(interface)吗?它必须扩展 java.io.Serializable 接口(interface)。

即:

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() {
            ...
        });
        ...

编辑,澄清。 :)

关于java - 是否有可序列化的标准闭包接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/685000/

相关文章:

java - 企业 Web 应用程序中 JSP 页面加载的性能问题

java - 在java程序中引入延迟

java - 在 Eclipse 调试器中运行的导出、签名的 apk 和版本之间的差异?导致问题的可序列化类

java - 无法调用需要 java.lang.Class 参数的方法?

java - 使用 Thrift 的非阻塞 SSL 服务器

java - 当从我的主类访问时,我的(正确的) HashMap 返回 null -(初学者)

json - 如何反序列化 java pojo 类中的 json 对象?

node.js - NodeJS Passport session 序列化 - 将用户反序列化到 session 中?

ios - self 已被封闭所俘获

javascript - 默认参数和柯里化(Currying) : Python vs. Javascript