为什么要在 Scala 中扩展 Serializable?

div*_*v93 9 java serialization scala deserialization

我正在 Scala 中完成一些 Sapark 项目,我看到所有对象都在扩展Serializable.

就像是 :

object someName extends Serializable {
//some code
}
Run Code Online (Sandbox Code Playgroud)

我了解序列化通常用于存储或通信数据结构,以便数据可以轻松地以原始形式从序列化形式加载到内存中。然而,在这种情况下,object它更像是一个 Java 类。那么,扩展的意义或优势是Serializable什么?你什么时候做这个?有必要一直这样做吗?

Dmy*_*tin 6

案例对象和案例类会自动Product扩展Serializable。有时,由于类型推断的原因,ADT层次结构中的特征和抽象类会被扩展ProductSerializable

https://typelevel.org/blog/2018/05/09/product-with-serialized.html


Viv*_*vek 1

在scala中,对象不像java类,它们就像java单例类,如果它的内容需要通过网络发送或者它们想要写入文件。因此它已被扩展为可序列化特征。