我打算通过扩展RecursiveTask
类在我的应用程序中使用Fork / Join。我注意到它是Serializable
。我要保留一些非序列化类型的字段。我可以使它们变为瞬态,但这会使它们在进行Serde操作后变为null,而我不希望那样。
我想知道为什么RecursiveTask
类将Serializable
接口实现为
我认为没有必要。另外,在什么情况下扩展类的实例将被序列化?
答案 0 :(得分:2)
RecursiveTask继承自ForkJoinTask的Serializable,并在此处记录:https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ForkJoinTask.html
ForkJoinTasks是可序列化的,这使它们可以在诸如远程执行框架的扩展中使用。仅在执行之前或之后而不是执行期间序列化任务是明智的。在执行过程中本身不依赖序列化。