【发布时间】:2011-09-13 03:47:57
【问题描述】:
我想知道如果 Scala 不(必须)遵循 Java 的 java.io.Serializable/java.lang.Cloneable(主要是为了与 Java 和工具/生态系统)。
由于 Scala 在语言设计上更简单,但实现了更强大的实现和抽象可能性,因此可以想象 Scala 可能会走一条与 Java 不同的道路,如果它不必承担 Java 兼容性负担的话。
我可以想象一个惯用的实现会使用带有(可能)私有字段/方法的类型类或特征(在 Java 接口中不可能?),也许带有一些标准实现?
或者标记接口在 Scala 中仍然是正确的选择吗?
【问题讨论】:
-
需要注意的一点是,
case classes 很容易用他们的copy方法克隆,这也允许在复制时重新定义一些值。 -
java中的可克隆和可序列化完全不同,Object.clone()只是一个memcpy(或多或少)但序列化是完整的对象图遍历。
-
是的,我知道。问题是关于这些“魔法”类本身,我不想暗示它们是相关的。
标签: java scala serialization language-design