清理Java中闭包的序列化

清理Java中闭包的序列化,java,apache-spark,serialization,closures,apache-flink,Java,Apache Spark,Serialization,Closures,Apache Flink,Java中匿名函数(或闭包)的序列化经常会失败,因为对不可序列化对象的虚假引用。例如,如果对象中声明的匿名类未标记为static,则它在形式上依赖于该对象,即使它不依赖于该对象中的任何方法或属性 为了解决这个问题,许多框架使用闭包清理实用程序: 星星之火: 在弗林克: 处于冷却状态(从Spark复制): 是否有任何库可以做到这一点,它可以作为依赖项添加,而不是像Chill那样复制代码?将Spark或Flink作为依赖项添加到项目中只是为了使用它们的闭包清理器似乎有点过分,特别是因为这些类不是

Java中匿名函数(或闭包)的序列化经常会失败,因为对不可序列化对象的虚假引用。例如,如果对象中声明的匿名类未标记为
static
,则它在形式上依赖于该对象,即使它不依赖于该对象中的任何方法或属性

为了解决这个问题,许多框架使用闭包清理实用程序:

  • 星星之火:
  • 在弗林克:
  • 处于冷却状态(从Spark复制):

是否有任何库可以做到这一点,它可以作为依赖项添加,而不是像Chill那样复制代码?将Spark或Flink作为依赖项添加到项目中只是为了使用它们的闭包清理器似乎有点过分,特别是因为这些类不是公共API的一部分。或者这些算法不应该在项目中重复使用有什么原因吗?

如果您对此投反对票,如果您能添加一条评论来解释原因,我将不胜感激,谢谢!如果你对此投反对票,如果你能添加一条评论来解释原因,我将不胜感激,谢谢!