java中匿名函数(或闭包)的序列化常常会失败,因为对不可序列化对象的虚假引用。例如,在对象中声明的匿名类在形式上依赖于未标记为的对象 static
,即使它不依赖于对象中的任何方法或属性。
为了解决这个问题,许多框架使用闭包清理工具:
在spark中:closurecleaner.scala
在flink中:closurecleaner.java
冷藏(从spark复制):closurecleaner.scala
有没有库可以做到这一点,它可以作为依赖项添加,而不是像chill那样复制代码?将spark或flink作为依赖项添加到项目中只是为了使用它们的闭包清理器似乎有点过分,特别是因为这些类不是公共api的一部分。或者有什么理由不应该在项目间重用这些算法?
暂无答案!
目前还没有任何答案,快来回答吧!